state
The current delivery state.
Transitions: SendState.Queued → SendState.Sent → SendState.Acked / SendState.Delivered / SendState.Failed. Never goes backward.
Lifetime / terminal-on-disconnect: the underlying kotlinx.coroutines.flow.MutableStateFlow is owned by the engine session that created this handle. When that session ends — either via RadioClient.disconnect, a transport drop, or supervisor cancellation — the engine transitions any non-terminal state to SendState.Failed (typically with SendFailure.Disconnected for in-flight sends, or SendFailure.HandshakeFailed for sends queued before the handshake completed). After that final transition the engine no longer touches this flow, so the value observed here is the terminal state for this handle's lifetime — a subsequent RadioClient.connect starts a fresh session with new handles.