I’ve done some more testing with FDE. Encryption with ZFS fails the same way.
Weirdly, when I install without encryption, then set up a new LUKS partition and try to mount it to /home using fstab and crypttab, it hangs during boot for a long while and eventually goes to the login screen without properly mounting it.
I discovered that systemd-cryptsetup-generator, which is responsible for converting /etc/crypttab entries into service entries, isn’t running. It’s also not among the other system-generators. I found it in the snap package ‘core22’ and ‘core24’, but there seems to be no ability to run them manually inside the snap (there are libraries distributed with them that aren’t on the base system).
For the time being, it seems that in order to automount encrypted partitions at boot, it’s necessary to author your own systemd service files.