I think I may have found the problem by accident. I'm posting this in case it helps somebody else.
While I did do some research on the IAC, cam sensor, crank sensor, O2, TPS, etc; the other day I decided to unhook the IAC and start the car to see what it does. Well, it started perfectly, at the correct rpms, idled smooth, and when warmed up, the idle dropped to the correct rpm. So I jump out to see what happens when I reconnect the IAC and notice that I had accidently unhooked the TPS instead.
So I go to plug it back in and the engine immediately starts racing again. I pull it back off and the engine idles back to normal.
WTF? I thought the TPS had nothing to do with idle, but operated only under load?
In any event, I have a new TPS coming in the mail. Looks like it might do the trick.