Some other options are:
VLC Thing and VLC Player running on a Pi with an audio board, or a spare computer.
Google Assistant Relay to any cast enable device or Chromecast dongle. It only allows broadcast (all your Cast enabled speakers at once) for speech, with the crappy prepend "Broadcast from [Username]", that you can't turn off. But it is a really convenient way to silently control Google Assistant compatible devices from RM rules.
Castweb-API. Cast speech to any cast enable device or Chromecast dongle, in either the HE TTS voices, or the native Google Home default female voice. You can play tracks, and it can be to individual devices, or via broadcast like Assistant Relay. Still says "Broadcast", but doesn't enforce a user name. I found it doesn't play my entire door chime MP3 (which admittedly is very long). So I'm still using the Chromecast Integration (beta).
Chromecast Integration (Beta) - I'm still using it. Ever since the hub update the fixed the database issue, my slowdowns are gone and the hub doesn't freeze. So for now, it stays. I don't think it's as much the problem child as people have been suspecting. At least that seems anecdotally to be the case for me.
My way for Alexa TTS - Works great. It's the one part of Samsung's SmartThings cloud service that doesn't seem to go down (much).