Just checkpointing myself, since I’ve come back to this after making changes in pursuit of my ultimate goal of booting from a SATA SSD via a USB adapter, using ext because frankly, btrfs seems to be a real dog compared to ext on the older, slower Beagle Bone Black (same model uSD). Maybe it’s the compression, but… no, do not want.
tl;dr: no significant change - it starts out, goes for a while, then comes the flurry of device read errors due to the random disconnect. SoS.
The USB:SATA case I’ve been using has a classic old JMS578, which has known shortcomings in its older firmware. Upgrading that does seem to have fixed the drive reporting and other secondary issues as promised, but unsurprisingly had no effect on the random disconnect.
I’ve also replicated this with your original root image (debian) copied to an ext4 partition (and UUIDs changed in grub.cfg and fstab), and I think it gets through more of the startup, probably because it’s not losing time to btrfs compression and general slowness. Just completes more steps before the disconnect, maybe. This is just an impression, not actually measured. Oh, and systemd’s brain-damaged growfs was disabled, saving more time?