> Why the hell can't you just tell the headphones to play from the phone and keep the laptop connected?
This is something that baffled me on Windows and MacOS, but I don't seem to experience on Linux/Android/iOS. Windows was particularly "greedy"; whenever you'd turn on your headphones it would attempt to steal the connection away (even booting other multipoint connections off). MacOS is slightly more graceful, but still hiccups when it initializes a new sound source and (for some godawful reason) launches iTunes for me. Thanks Apple.
On my FireTV and Linux desktop/laptop, they seem to have lazy-negotiation enabled by default. Turned-on devices will connect and acknowledge one another, but won't switch audio sources until the other device starts playing audio. I really think this ought to be the standard for all Bluetooth audio stacks.
(Note: this is a relatively recent development on the Linux side of things. Before PipeWire, it's Bluetooth audio stack was worse than Windows.)
You can also set it to start something else (Spotify, whatever) instead