I cleaned the IAC tonight with carb cleaner and it did not change anything. It was dirty, but its still doing the same thing. It may not be as bad (wont know until i drive it more) but its still doing it.
I think it might possibly be something to do with the throttle position sensor but i dont know. I disconnected the throttle position sensor and drove the truck without it and it acted the same as it did when it was plugged in, with the exception of the fact that it wouldn't idle.
Other symptoms that I think are leading to the TPS are: hesitation at light throttle - cured by giving it more throttle. Jerky at low speeds.