We were pretty upset when we went through all this stuff and it finally turned out to be the O2 sensor. Kinda made me mad since I had originally considered the O2 sensor, and then decided it wouldn't do something like that.
Oh well, at least we got it fixed.