It had all been working wonderfully, until I had a problem recently that meant I had to redo the entire Zigbee setup.
I run HAOS on a VM, with the Zigbee radio being passed through from the host. Recently I wanted to play with Thread so I added a radio and passed it through to the VM as well. All was fine, though I wasn't having a lot of time to experiment and the Thread dongle was connected in an awkward position so I decided to yank it out. At this point all hell broke lose. Z2M wouldn't start, throwing cryptic error messages. After a lot of trial and error, I removed both USB passthroughs, rebooted the VM, shut it down again, re-plugged the Zigbee dongle and re-added the passthrough. At this point the hardware side of things was fine but my Zigbee network was gone. To make it worse, a new one couldn't be initialised because it was trying to use the same ID as the previous one. I had to manually change the ID in the config YAML, restart everything, then re-pair all devices.
I really feel like this stuff should be more resilient to failures. Otherwise, it's pretty good!