I go the container route, and have only had one issue: allowing HA to access my system's Bluetooth adapter. I had some ESP32s lying around, so I used ESPHome to make a Bluetooth proxy, which solved that issue.
I don't run addons though, which might be part of it.
Interesting. I also run HA in a container and getting it to pick up my Zigbee dongle was so easy I don't even remember how I did it.
I haven't tried BT, but my HA box lives underneath a couch with a big steel pull-out bed so I don't imagine it would work very well anyway.
I haven't done it either. But it should just be a case of passing the device to the container. You might need to disable the host from using it and pass admin rights to the container too.
But it was also quite easy to pass a USB device to the HAOS VM in Proxmox.
The host I run HA on is Ubuntu server. If memory serves me right, the Bluetooth issue was related to apparmor and dbus restrictions on docker
Add-ons (now apps) can't be done without HAOS. It's one of those non-obvious things.
There's other things I forget which are also more difficult/annoying to manage on the container version.
I have a rather large docker compose stack so my first experiments with HA were as running it there.
That lasted maybe a week before I went and ran it as a VM instead.
Yeah, I ended up buying a dedicated mini PC ($100 refurb) to install HAOS on. HA is pretty much useless without being able to run add-ons. I run everything on k8s in my home server, I don't have a VM system set up and didn't want to bother just for HA. It's funny, the pattern of a central application that uses docker containers to add plugins seems like a perfect fit for a Kubernetes Operator. I suppose it still misses out on some of the advantages of running everything "on metal" for integrating with physical components like USB dongles.
Apps/add-ons is just another container, so you can add them manually in the compose file.
Yep, I run esphome in a separate stack w/o issues.