Woohoo! I have it all figured out! I recovered my touch with fastboot!
I used the serial port ONLY to see what I was doing. You do not need it to repair the kindle.
You can ignore those serial I/O messages. *Something* killed my kernels, either when I tried to erase user data, or flash mmcblk0p4.
But, I extracted the main and diags kernels from my mmcblk0.img file, and I flashed them with fastboot. I could see by the serial port messages when booting diags and main that the main and diags partitions were damaged to, so I flashed with with fastboot as well from the dasmoover debricking repair images.
Although fastboot reported success writing mmbclk0p1.img, and much too quickly, the serial console told why. It said it the image was too being truncated to a smaller size. Apparently fastboot mode has a maximum file size just like USB Downloader mode, and that main system partition is too big!
Lucky for us, the diags partition is small enough to flash with fastboot. I flashed diags with no serial port error messages.
I did "sudo ./fastboot setvar bootmode diags", and
"sudo ./fastboot reboot", and it booted to diags. It took quite awhile because serial port messages said it was testing and rebuilding a bunch of stuff, including the FAT32 partition and /var/local.
In diags I exported the USB drive, then copied the mmcblk0p1.img that was too big for fastboot to the USB drive, and my data.tar.gz, and a RUNME.sh that does "dd if=/mnt/us/mmcblk0p1.img of=/dev/mmcblk0p1 bs=1024", and I added an ENABLE_DIAGS to the USB drive too.
ENABLE_DIAGS is important, because we must be in diags mode to write mmcblk0p1 successfully. Rebooting will install data.tar.gz, which runs RUNME.sh on the next boot.
After putting all the stuff you need, reboot from the diags menu, which will install data.tar.gz but will not run RUNME.sh. Boot a second time to run RUNME.sh. It is taking a long time to write mmcblk0p1, and I know my battery was low, so I probably need to recharge it in fastboot mode and try again after a few hours of recharging. If you read the IRC chat with dasmoover, you can see that he had this problem, but things went well after recharging the battery.
Anyway, other than a low battery at this point, my touch boots to diags and runs my RUNME.sh scripts. I will let my script run a few more minutes, then recharge the battery in fastboot mode, then try again later. I am quite sure it will complete restoring mccblk0p1 with a full charge, like it did for dasmoover.
Update: It completed. I took about 30 minutes to finish copying mmcblk0p1 with bs=1024...
It all works now, but I had to crack dasmoovers root password from his image file. ;-)
And after booting to main, it is sitting at the factory screen telling where the touch zones are...
I will provide more RUNME.sh scripts to install various options, and a program that builds a RUNME.sh for you depending on the options that you select.
I will also write a simple step-by-step guide.
But for those who want to do as I did, just do as I did.