I have a set of USB speakers which I use on a laptop occasionally.
IMO, PulseAudio is the answer.
Get PA installed and working ..... use the task meta package from the repo and also install pavucontrol which gives you the GUI to control the extra device.
You can then choose to direct sound to the USB speakers or to the internal speakers on an app-by-app basis.
You can make the USB speakers the default, and if not present have the internal speakers as the fall-back.
Everything works perfectly here ...... using PulseAudio to control the sound streams.
Be prepared to spend a little time learning how best to use (pavucontrol) PA Volume Control!