Too low of an idle when hot - most likely EGR, TB, or vacuum issue - but it sounds like you hit them first.
Things to double check:
- vacuum leak (spray suspect hoses, unions, base of components with some very lightly soap water, soap acts as a surfactant, allowing hte water to caot the suspect part. If the idle improves after you spray something, you found the leak source - could be a leak too small to be visually detected)
- fuel pressure regulator may be operating at too low a pressure (put a pressure gauge on the fuel log and see if the pressure stands up, could also indicate a dying pull pump)
- Idle speed set incorrectly (probably not much you can do about this, I believe that model year is fuel injected, so idle speed is set by the computer)
- ignition system problem (check cap, rotor, distributor, plug wires, sparkplugs, ignition coil - this generation had some \"hot\" coil problems)
- check compression to determine engine condition
- fuel injectors may be dirty or dying
- check the throttlebody idle air circuit, may not be functioning properly (turn on A/C, see if idle speed jumps - it should, if not, circuit could be clogged)
Logged
2002 Corolla S, Silverstream, 1.8L 1ZZ-FE (VVT-i)
2003 Matrix XRS, Cosmic Blue, 1.8L 2ZZ-GE (VVTL-i) - RIP
2009 Matrix XRS, Blue Streak, 2.4L 2AZ-FE (VVT-i)