In the Play and PlayStreaming handlers, the old engine's writer thread still holds an Arc<AlsaDirectStream> when the stream_opt is dropped and a new snd_pcm_open() is attempted. This causes EBUSY on track switches with sample rate changes. Reorder to: stop engine -> drop stream -> open new stream, matching the Stop handler's correct lifecycle. cc