It turns out it wasn't my power supply. I had partitioned my NVMe into two, one for /boot and one for root, and told it to install to the root partition on /dev/nvme0n1p2 . Had the same issue: hang at boot time with the blue light on continuously (but not looping through a power cycle: the blue LED never turned off, as it would in a boot loop). Then I had a flash of "maybe..." and repartitioned the NVMe as one partition, then installed to it with armbian-config. Success! I get a lot of messages at boot time scrolling through the console that I can't read (I use a 4K monitor, and it's tiny text), but it does run without the SD card in place. Yay!
Now to see how fast it runs the application I got it for.