bad iac wont always make the check engine light turn on. possibly change that.
try cleaning your grounds or moving the main battery engine ground to a different spot close to the original. had a problem with alternator and battery. kept stalling and gauges flicking around, dash turning off, then eventually the started wouldnt even turn. changed battery numerous times, did the alternator, then finally after the starter issue i changed the ground to a different spot and it started working fine. still cant explain why it did what it did but that spot doesnt ground properly :S
worth a shot anyways. hope you can figure it out.