tts_player.stop() already invokes its done_callback which is _tts_finished(), so the explicit self._tts_finished() call immediately after was a duplicate. This caused double 'Unducking music' and double 'TTS response finished' log entries on every stop-word-triggered stop. Also move _pipeline_active = False inside the 'if not self._tts_played' branch in VOICE_ASSISTANT_RUN_END, so it is not cleared while TTS is still playing. Co-authored-by: Omar Amin <65174210+omaramin-2000@users.noreply.github.com>