The image was the result of working on a Novena kernel image while at someone's house, after getting it to a state where it didn't boot. I had gotten the recovery image support working. The magic in the U-Boot script involves calling the "kbd" command, which returns true if at least one key is pressed:
if kbd
then
setenv rec .recovery
setenv bootargs init=/lib/systemd/systemd root=/dev/mmcblk0p2 rootwait rw consoleblank=0 splash
else
setenv bootargs init=/lib/systemd/systemd root=/dev/sda3 resume=/dev/sda2 rootwait rw consoleblank=0 splash ath9k.ps_enable=1
fi
fatload ${bootsrc} ${bootdev} 0x12000000 uImage${rec}
fatload ${bootsrc} ${bootdev} 0x11ff0000 uImage${rec}.dtb
If the button is held down, it will load uImage.recovery and uImage.recovery.dtb, otherwise it will load uImage and uImage.dtb.
The actual recovery image was built like the main image, using debootstrap. I was using it as my primary development image while trying to recove the main kernel, so I put necessary files onto it: gcc, Xorg, Bluetooth, Pidgin, XChat, and Iceweasel. It was decent enough that I could spend the whole weekend running in that environment, though it was slow and not that comfortable. An important step is to run "apt-get clean", which removes leftover cached .deb files.