Given the symptoms, I would suspect the downstream (after cat) O2 sensor is/has failed. O2 sensors can only feed usable data to the computer once they've heated up substantially.
As I understand it, before the sensors are hot enough the computer ignores the sensor data (open loop) and mixes the fuel at the stoichiometrically "ideal" fuel-air ratio. Once the sensors are hot enough, the computer starts using their data (closed loop) to tweak how much fuel is actually needed to burn fully.
I suppose it is possible that you have an electrical problem with the wiring to the sensor, but swapping out the sensor is faster and easier than chasing an electrical gremlin that may or may not exist. The sensors aren't cheap, but at least then you would have a known good part if it doesn't fix the problem.
Personally, I would suggest avoiding the "universal" ones that require you to splice the wires as I have had bad luck with them.
Edit: I would expect the code for the Idle Air Control system is a side effect of the O2 sensor problem and would go away once the sensors are working properly.