connectionState
Transport-level connection state of the radio hardware.
This flow reflects the raw state of the physical link (BLE, TCP, Serial, USB):
ConnectionState.Connected — the transport link is established
ConnectionState.Disconnected — the transport link is down (permanent)
ConnectionState.DeviceSleep — the transport link is down (transient, device sleeping)
This is NOT the canonical app-level connection state. The transport may report ConnectionState.Connected while the app is still performing the mesh handshake (config + node-info exchange), during which the app-level state remains ConnectionState.Connecting.
Only MeshConnectionManager should observe this flow. All other consumers (ViewModels, feature modules, UI) must use ServiceRepository.connectionState.