Well, more good news… I went through some boxes of gear and found an old PCI serial card, so I was able to install that in a server that's located next to the firewall and so now I finally have a reliable serial console on it. That makes life easier. :-)
I ran the destructive badblocks check against the 4GB flash drive, twice. It came back clean both times. (So that's 8 cycles of write/read of various bit patterns to every block on the disk.) So I'm fairly sure the flash is ok. I wrote the 4GB 2.3.2 image to it, booted, connected to it and restored my config, and this time it booted up fine, it didn't become unresponsive and require several reboots to get it stable like it did when I first booted off of the 2GB flash earlier today. I wish I had had the serial console then so I could have seen what was going on. But in any event, it seems fine now with the original flash drive back in it.
Also, I learned that the flashing "SOS" LED simply means there's an unread alert, so that was a red herring, not an indicator of a problem.
So the bottom line is, there was nothing wrong with the disk; the pfSense automatic update process did indeed break my box rather badly. Thank you though Jim, for getting me thinking about this the right way. I sometimes forget that pfSense truly is an embedded system with a single XML config file, so it was dumb of me to be banging on it trying to fix it when I could simply re-flash and restore config. That got me back up and running.
Still sucky that clicking an "update now!" button in a GUI can break your config though, even if it's easy to recover from. :-(