classifyBleException
Inspects this Throwable and returns a BleExceptionInfo if it is a known Kable exception, or null if it is unrelated to the BLE layer.
This keeps Kable type knowledge inside core:ble so that core:network (and other consumers) can classify BLE exceptions without depending on Kable directly.