I had the same problem till my car was tuned. The tuner explained to me that the factory idle is like 650, so even after you set your base idle, and then your TPS if your motor wont idle at 650 there will alway be a trade off.
In my case the tuner reset my base idle to 850 which is what the motor seemed to like, then he reset the TPS, and then changed the ECM through my chip from the factory 650 to 850 to match everything else. After the tune the idle holds at about 1200 cold for about 30 seconds or so then idles down to 850 holds there. On a warm start up it goes right to 850 and stays there.
Before the tune I had much of the same problems that you have. All I could do untill the tune was to set my idle to like 1200 so it wouldnt die by dipping to low, then it had a hanging idle. I went through all the procedures properly, and all parts wokred normally. It wasnt untill the idle setting in the ECM was changed that everything was perfect.
The tuner said that if your car wont idle smoothly with the IAC disconnected near the factory setting there will be some trade off.
1967 Ranchero, 390, C6, 9 inch rear
New build : 10.5:1 408, AFR 205s, Vic Jr int, QF 750, FPA 1 3/4 LTs, AOD, 3200 stall, 3.70 gears