I'd check the throttle position sensor. I have seen them not return to the idle position so the ECU does not maintain an idle RPM. If bad. they may not throw an out of range voltage to trigger a code.
If the idle RPM seems to vary, that is usually a sign. WHen the one on my Jeep went bad, it ran fine but idle was 400 RPM sometimes.
Other things to check are AC and power steering sensors that predict the need for more power at idle.--
Embedded Systems Consultant,
SHDesigns home - DIY Welder