BLE device not connecting on Venu 3

I have had a ConnectIQ data field on the ConnectUQ store for several years now.  It seems to be working ok for most people.  However, I have been encountering two issues recently:

In all cases, the code works flawlessly in the simulator with the nRF dongle, for any device I bother to try.  I've updated to the latest version of the SDK (8.4.0) without it resolving the issues on the watches.  It also works fine for FR945 and Edge 350 that I've tried.

I've compared the most recent BLE examples in the SDK and it doesn't look like anything has changed since I coded this.

Issue 1:

I've had an issue from one user where his watch keeps connecting and disconnecting.  I find the same behavior on my FR965.  No idea why.  I tested it with several other devices I have access to (FR945, Edge 350) and they all work fine.  The devices will hold a connection for a whole workout.  The FR965 gets a disconnect after 10 to 15 seconds.

Issue 2:

The more perplexing issue is with a Venu 3.  This device simply won't connect after pairing.  My code is almost an exact copy of the Thingy52 Data Collector.  The "DeviceManager" code is shown below.  The software logs paired" when I call pairDevice().  But then crickets.  I expect the system to call procConnection() next but that never happens.  Since this works in the simulator and on other watches, it's clearly not the code.

'''

//! Start BLE scanning
public function start() as Void
{
Rssi = -99;
BluetoothLowEnergy.setScanState(BluetoothLowEnergy.SCAN_STATE_SCANNING);
System.println("Starting scan");
}

//! Process scan result
//! @param scanResult The scan result
public function procScanResult(scanResult as ScanResult) as Void
{
try
{
// Pair the first Thingy we see with good RSSI
Rssi = scanResult.getRssi();
if (Rssi > -80)
{
BluetoothLowEnergy.setScanState(BluetoothLowEnergy.SCAN_STATE_OFF);
BluetoothLowEnergy.pairDevice(scanResult);
System.println( paired");
}
}
catch(ex)
{}
}

//! Process a new device connection
//! @param device The device that was connected
public function procConnection(device as Device) as Void
{
if (device == null)
{
return;
}

if (device.isConnected())
{
_device = device;
System.println("connected");
StartMyConnection();
}
else
{
try
{
if (_device == device)
{
BluetoothLowEnergy.unpairDevice(_device);
_device = null;
System.println("disconnected");
EndMyConnection();
}
}
catch(ex)
{}
}
}'''