I mailed caladri about libufs ('cause her name's on it) and she made the (in retrospect) obvious observation that I really should just try mounting the image in FreeBSD. So after a few failed attempts with different boot CDs, I found FreeSBIE, a FreeBSD live CD that includes gvinum. Then I mounted the image (
man mdconfig), let gvinum recognize it, and ran an fsck on
/dev/gvinum/raid. (I hadn't run an fsck back when the disk started going bad because you don't want to cause a bunch of writes on a failing disk...)
As far as I can tell, almost everything's back, hooray! It's been a year since I've seen this data, and I had pretty much thought it was gone for good.
This fiasco made me realize I was going about data protection the wrong way. It goes back to threat models, sorta: what was I trying to protect against? Mirrored RAID protects against disk failure in a high-availability sort of way, but e.g. a power supply hiccup or bad controller (or even user error) and the data's gone anyway. Much better is a real backup strategy, and though it's not nearly as fun as dorking around with vinum/LVM/etc. it can be done with comparable cost and effort.
And finally, the whole situation drives home a point that's been a recurring theme in my life: there's all this junk (memories, data, things) that seems like it'd be awful if you lost it, but really, it's not so bad. Ultimately it's just stuff, and all of the interesting bits are in my head.