EDIT: If all else fails, try a new Oxygen Sensor Heater relay.
--------------------------------
The rest is the story of how I figured it out...read at your own risk lol.
OK, here is one I bet almost nobody here has encountered, or at least figured out. I never would have with a stock O2 sensor. Luckly, I have an aftermarket Wide-Band system and I spent the time to install the indicator LED in my glove box.
For the past 3 or so months I would get a CEL when going uphill, and it would disappear if I got off the throttle, but would come back after maybe 10 seconds if I was still going uphill. Once I leveled out and eased off the gas, it would go away. By watching the indicator LED, I could see that the unit's power (coming from the heater circuit) was being cut off for some reason. The CEL was tossing an EGO Heater fault code. I had a spare O2 heater relay in a bag of stuff my neighbor gave me years and years ago. I replaced the suspected "uphill problem" one...figured the contact niside was not holding.
Well, I swapped relays right when I put the V3 MAF converter on. I was so focused on the MAF converter that I forgot to check the indicator LED for a couple days. Odd things would happen...I would get a CEL soemtimes, and a EGO sensor fault (sensor, not the heater circuit this time). The idle was fluctuating, and would give me a TPS fault after about a minute. When cruising on the highway I would watch the MPG gauge to see if the car was going to run lean and burn out with the MAF on there...when I would accelerate and return to constant-throttle, the mileage would be bad for a couple seconds, then spring up to very good...all with an unmoving foot after accelerating......very odd.
So, I checked the indicator LED. The damn thign was losing power and resetting EVERY time the car experienced ANY sort of forward acceleration, whether it be a hill or me using the gas. So, the odd MPG needle behavior was from losing O2 input. It only tosses a CEL out if it has no or bad input for 10 seconds, and that would only happen stopped at a light/driving facing uphill.
Well, I have taken apart relays, and they have a little solenoid activated contact. I thought it HAD to be that not holding in place strongly enough. So I jumped the proper wires and installed a resistor across the ECU's EGO heater control pin and the ground so I would not get a heater fault (you will if you leave it open). PROBLEM SOLVED. I must have had a bad relay to start, then the used one must have been even worse! So, try a new relay if you are having a bad idle, crap mileage and the occasional EGO sensor fault!
Do not jump anything in the relay socket unless you have an aftermarket module wired in and powered from it. Even then you should make sure you know what you are doing, and use at least a 2kOhm 1W resistor. Anyway, that is my experience. Maybe someone will find this helpful.