So it's either run an unnecessarily resource heavy VM or have compromised security. Hopefully someone will come up with a better option
IMHO there is none and will never be. A system with a shared kernel is per default not separated enough, so security will ALWAYS be a concern.
Yes, a VM needs more resources, but is has features a LX(C) container does not have (yet):
- zero-downtime live migration
- own kernel with e.g. features the PVE kernel lacks ... or is not optimized for, especially for resource restrictions with respect to docker or newer kernel versions with special features
- possibility to have "real" ZFS for docker (e.g. container layers in zfs datasets with snapshots, compression, etc.)
- full auto-provisioning via api for e.g. rancher to create k8s clusters
- IO limits per VM from PVE
- does not potentially break if PVE does an update to LXC, which happend a few times in the past (yet not problem, Docker in LXC is not supported)