What DTC code did you get, exactly? There is no "lean" code for an oxygen sensor. If you did, however, get a lean code, it indicates that the engine is running out of fuel. How does the engine operate under wide open throttle? Your problem is most likely that the injector driver's are failing in the engine ECU. The reason you may not be getting as many MIL's as you think you should, is because the ECU doesn't think anything is wrong. Replacing the ECU should take care of your problem. I would advise against buying a cheap aftermarket 'rebuilt' unit as they are not very reliable. Good Luck.