Root cause: tts stop triggers Speaking→Listening, which calls
SendStartListening in HandleStateChangedEvent. idle arrives too late
and gets overridden. Fix: skip tts stop when idle is needed, go
Speaking→Idle directly.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>