Going with a mirrored pool sounds like a good idea. You can do this by partitioning the NVME and the SSD to have an OS partition and another for the zpool. This is exactly what I do on my machines; I use btrfs for the OS partition to have a mirrored rootfs and a I give LXD a mirrored zpool.
FYI, when you lxd init, you can only provide it one block device/partition to use for the zpool. You will need to turn that single dev zpool into a mirrored one. This is easily done after the fact, see man 8 zpool-attach for the details.
At the moment I have a plain-vanilla Ubuntu 22.04 install with content in the file system. I like your idea of mirrored OS based on btrfs. Do I need to reinstall the OS from scratch to achieve this? Or is there a way to re-host the OS onto btrfs without losing content?
That done, if I understand correctly, I can init LXD with a zpool and mirror after the fact.
If your OS is already installed on btrfs you can easily easily mirror it (see Using Btrfs with Multiple Devices - btrfs Wiki) but if it uses another file system, that’s much more involved.
A full reinstall is probably the easiest. If you have data you’d like to keep, you can reinstall on the other disk, copy your data, blank the old disk and then use it for mirroring.