Thanks for the recommendations (and the entertainment).
I was able to recover all the data from the drive. I discovered that if
I:
- booted from another drive with the ailing drive as slave...
- waited until all disk activity settled down...
- opened the top-level directory on the ailing drive and waited for
disk activity to settle...
- opened another directory on the ailing drive and waited for activity
to settle down...
- do this with another directory or two...
... then, about half the time, the drive would then remain running and
usable for hours, until the next reboot, when I'd have to try this
ritual again.
So this gave me plenty of time to recover data from the drive, and I
was able to get everything off it.
I still have no idea what kind of drive failure would result in this
behavior. I'm guessing maybe the drive had become incapable of handling
lots of requests at once.