I don’t think this would be unique to self-hosted LiveKit, I imagine any behaviour with audio device switching would be consistent across both self-hosted and LiveKit cloud.
This is all only Safari, is it? Do you also see this behaviour on Chromium-based browsers? And, is this reproducible with the react starter: GitHub - livekit-examples/agent-starter-react: A complete voice AI frontend app for LiveKit Agents with Next.js · GitHub ?
I imagine also that the behaviour is consistent with other bluetooth headsets, and this isn’t a specific issue with ‘CMF Buds’.
For your first issue, it reminds me of this: Seeking React patterns to gracefully handle Safari's strict autoplay policies and background audio suspension for iOS users. which required a tap on the screen.