I’m using BLE GATT messaging with an upgrade path to L2CAP CoC channels for clients that support it. Roughly the path is: audio input -> opus encode -> BLE transmit -> smartphone/desktop. The latency floor ends up being ~80ms due to jitter buffer sizing, etc.