v1.0.4
Fixed the "ghost reconnect" when switching STT engines.
Switching STT engines (say, from Apple Speech to Soniox) occasionally did something odd: the old provider's disconnect task ran slowly and only fired after the new connection was already established, killing the freshly made connection by accident. This release serializes the switch flow (chained scheduling via providerSwitchTask), so the old connection fully closes before the new one is triggered.
This also plugs the "ghost reconnect": at the moment of switching, the old provider's disconnect event used to trigger the auto-reconnect timer (300ms), pulling the engine you'd just switched away from back in. A new isSwitchingProvider flag now suppresses auto-reconnect during the switch window, with verifyConnectionLive as a backstop for edge cases.