That’s because tts.speak and the legacy tts.google_translate_say actually use media_player.play_media and automatically set its announce option to true.
When announce is true, the TTS announcement plays over the existing music. As a result, there’s no change in the media_player’s state (it’s always playing).
If you want the previous behavior, where the existing music is stopped and then the announcement is played, you’ll have to use media_player.play_media directly and set announce to false or simply exclude the announce option (it defaults to false).
I posted an example here: