But... Jim was on the right track. After Rohit alerted me to the existence of the edit history display, I could see what commands were being executed instead of Undo. They were the last two here:

- historyList.png (43.05 KiB) Viewed 953 times
So now I could search the key assignments for "delete." And yep, we have a corrupted keymap:

- corruptKeymap.png (121.03 KiB) Viewed 953 times
Obviously I wouldn't have assigned Command-Z to those, nor should the GUI have allowed multiple assignments to one key even if it had been pressed by accident. The only change I made to my key assignments was changing the Delete key to "delete selected" instead of "ripple delete."
Removing the erroneous entries eliminated the erroneous behavior and allowed Undo to work.
Oh, and in this situation, "live save" was a double disaster: It saved after the erroneous undo, blowing away all your work AND saving the project. Egads!