Sorry to hear that, booting problems suck and are horrible to debug.
The next step I would try would be to boot an other install, like a liveusb or a raspbian, on the same usb port, to completely eliminate a hardware problem if it boots properly.
If it is a software problem, it seems to happen very early in the boot process, so my bet would be a corrupted initramfs/initrd. No idea how you could debug and fix that on Ubuntu, though (especially on a Pi where /boot
is… different). Maybe installing an other Ubuntu on an other disk or stick, then copy the boot files (making a backup of the original files to restore them if it doesn't help, no need to pile up possible causes of trouble). Throwing it here in case other people know better.