ea19aba53d
Switching station without pressing Stop rebooted: a StreamBuffer allows a single sender, but the previous station's HTTP task lingered (blocked in recv, or in a full-buffer send) past stop()'s wait, so starting the next station made two senders -> FreeRTOS assert -> reboot. Fixes: close the live HTTP socket from stop() (mutex-guarded) so a blocked recv returns at once; short net/decode timeouts; a per-play generation guard so an old task never touches the buffer; and play() waits for the old session to be fully gone before starting.