- Resolve the (connection, profile) once per dictation / conversation and use
it for the warm-up, the transcription (client-direct config + relay) and the
release; untagged halves stay untagged instead of re-reading ambient scope.
- Recorder and conversation drop any continuation (warm-up, transcript,
submit) that settles after unmount, end(), or a newer start().
- syncSttLease: every settled-apart acquire is sent (no client freshness
window); an acquire coalesces only onto a queued acquire that is still the
latest intent, so on/off/on ends acquired and waits for its own acquire.
- Idle-unload watcher applies the stt.local policy of the caller that last
loaded/used the shared model, re-read in that caller's context each cycle.