Well I talked at length to AppleCare without finding the problem so they booked me into the AppleShop. At the AppleShop the BlueTooth (BT) devices worked without a hitch. Apple gave me the option of reinstalling macOS (I have the latest iMac Sierra 10.12.5 already) but as it wasn't faulty in the AppleShop I took it home and tried it again. Immediately the BT devices starting continuously disconnecting/connecting, so I have wireless (2.4Ghz) interference at home. I have an iPad Air2 10.3.2 an iPad Pro 10.3.1 and an iPhone, so I turned off BT on all devices and bingo, no disconnects! I experimented a bit turning BT on the iPad Air2 connecting to the iMac and trying to AirDrop a file. The iPad2 connected via BT to the iMac but was unable to AirDrop and the iMac's BT devices again started disconnecting. The problem is repeatable (so hopefully fixable by Apple). Here's some of the events from the console:
default | 00:14:38.639127 +1000 | cloudpaird | hostControllerPoweredOn -- Host Controller is powered ON, new bluetooth address: 88:63:df:ce:1c:52 |
default | 00:14:38.640951 +1000 | cloudpaird | hostControllerPoweredOn -- Host Controller is powered ON, new bluetooth address: 88:63:df:ce:1c:52 |
default | 00:14:38.642925 +1000 | cloudpaird | hostControllerPoweredOn -- Host Controller is powered ON, new bluetooth address: 88:63:df:ce:1c:52 |
default | 00:14:38.643880 +1000 | cloudpaird | hostControllerPoweredOn -- Host Controller is powered ON, new bluetooth address: 88:63:df:ce:1c:52 |
error | 00:14:39.086328 +1000 | AirPlayXPCHelper | 24-a0-74-7f-be-e4 has no service mask |
default | 00:14:39.087023 +1000 | UserEventAgent | [BTUserEventAgentController devicePublished] count = 1 previousCount = 0 |
default | 00:14:39.087057 +1000 | UserEventAgent | [BTUserEventAgentController devicePublished] seconds of numberConnectedDevices[0] = 5941 |
default | 00:14:39.087081 +1000 | UserEventAgent | [BTUserEventAgentController messageTracerEventDriven] devicePublished |
default | 00:14:39.087096 +1000 | UserEventAgent | [BTUserEventAgentController messageTracerEventDriven] |
default | 00:14:39.087580 +1000 | UserEventAgent | [BTUserEventAgentController messageTracerEventDriven] PowerSource -2.000000 -2.000000 |
default | 00:14:39.087620 +1000 | UserEventAgent | [BTUserEventAgentController messageTracerEventDriven] SystemState 0xE0000300 0xE0000300 |
default | 00:14:39.087652 +1000 | UserEventAgent | [BTUserEventAgentController messageTracerEventDriven] LidStatus 2 2 |
default | 00:14:39.087683 +1000 | UserEventAgent | [BTUserEventAgentController messageTracerEventDriven] BluetoothState 1 1 |
default | 00:14:39.087707 +1000 | UserEventAgent | [BTUserEventAgentController messageTracerEventDriven] StateApple80211 0 0 |
default | 00:14:39.087738 +1000 | UserEventAgent | [BTUserEventAgentController messageTracerEventDriven] FlagsApple80211 0x00000000 0x00000000 |
default | 00:14:39.087762 +1000 | UserEventAgent | [BTUserEventAgentController messageTracerEventDriven] ConnectedDevices 0 1 |
default | 00:14:39.087809 +1000 | UserEventAgent | [BTUserEventAgentController messageTracerEventDriven] ConnectedDeviceTypes 0x00000000 0x0000000B |
default | 00:14:39.087842 +1000 | UserEventAgent | [BTUserEventAgentController messageTracerEventDriven] update to latest event information |
default | 00:14:39.088274 +1000 | blued | L2CAP open complete: 0 |
default | 00:14:39.088346 +1000 | blued | ***** [handleL2CAPChannelOpened] Signalling channel = 0x7fbab52057d0 opened for device = Nev Dowling’s Mouse. |
default | 00:14:39.088458 +1000 | blued | ***** [handleL2CAPChannelOpened] Signalling channel = status 0x0000. |
default | 00:14:39.091856 +1000 | kernel | handleInformationResponse kBluetoothL2CAPInformationTypeExtendedFeatures deviceAccountPaired, check fixed channel support |
default | 00:14:39.094521 +1000 | opendirectoryd | Client: <private>, UID: 501, EUID: 501, GID: 20, EGID: 20 |
default | 00:14:39.101349 +1000 | kernel |
IOBluetoothDevice::setProperties() -- calling mHCIController->CallCreateDeviceReporter() -- this = 0xe900
default | 00:14:39.101357 +1000 | kernel |
IOBluetoothHostController::CallCreateDeviceReporter -- calling enqueueAction() -- device = 0xe900
default | 00:14:39.101369 +1000 | kernel |
IOBluetoothHostController::CreateDeviceReporterAction -- device = = 0xe900
default | 00:14:39.101371 +1000 | kernel |
IOBluetoothHostController::CreateDeviceReporterAction -- calling CreateDeviceReporter() device = = 0xe900
default | 00:14:39.101372 +1000 | kernel |
IOBluetoothHostController::CreateDeviceReporter -- device = = 0xe900
error | 00:14:39.106241 +1000 | AirPlayXPCHelper | cc-44-63-a7-fa-f7 has no service mask |
error | 00:14:39.106313 +1000 | AirPlayXPCHelper | 88-63-df-ce-1c-52 has no service mask |
error | 00:14:39.106570 +1000 | AirPlayXPCHelper | 24-a0-74-7f-be-e4 has no service mask |
error | 00:14:39.107008 +1000 | AirPlayXPCHelper | 24-a0-74-1a-0a-25 has no service mask |
default | 00:14:39.150403 +1000 | kernel | [BNBMouseDevice::init][92] init is complete |
Hopefully this will mean something to some macOS guru and we'll get a fix in IOS 10.3.3 and/or macOS Sierra 10.12.6
Weird thing is that there were many BT devices in the AppleShop so why didn't I have the same 2.4Ghz interference in that environment? I even had my iPad2 & iPhone there, but can't say for sure that BT was turned on. Anyway my BT devices have been connected solid for a couple of hours now, so hopefully this is the end of this saga.
BTW: Bluetooth PAN was able to be removed from System Paramaters>Network>Bluetooth PAN>-