You are correct in that the IAC & TPS DOES help control idle.
I would go thru your throttle body real well, even go so far as to pull the IAC out, and give it a good cleaning with a stiff NYLON bristle brush (do not use a wire brush) and some throttle body cleaner (not brake cleaner, or carb cleaner).
I would also make sure your plugs are gapped right, double check the cap, rotor and even do a resistance/continuity test on the plug/coil wires.
Check for leaks as well... a leak in the throttle body gasket, or in the intake manifold, could potentially cause some idle issues as well... once the metal is all nice and toasty, the gaps may seal up a little more from thermal expansion. Hence why it runs fine when warm, but has issues when cold. Track down vacuum and/or gasket leaks using some starting fluid or other aerosol based highly flammable/combustible fluids.. .spraying them around suspected areas, listening for any change in the idle/sound of the engine.

Hope this helps... Please report back on your findings, and/or solution.