I fixed my device tree problems on NixOS by PXE-booting the RPi4, so I get to handle the dtbs using a TFTP server: https://discussion.fedoraproject.org/t/fedora-coreos-device-...
For NixOS specific instructions, see https://juuso.dev/blogPosts/ipxe-rpi4/ipxe-nixos-edk2-uefi-b...
Disclaimer is that nowadays I moved on from ARM (at least for non-UEFI systems), because I feel like working with the preboot environments is just not worth the hassle if you need to reliably boot remote servers.