i have a buddy, who owns a 91 2500 4x4 burb, & his truck was doing exactly like you are saying yours is doing. we went thru everything, replacing o2,tps,etc,etc..when it was running at idle, you could look down the tb and 1 injector wasn't spraying a cone of gas like the other, so we replaced the injectors, still the same problem, 1 injector dribbling gas in drops, we thought maybe fuel pump going out, we had a friend who has access to all the tools needed, come by and test the fuel pressure, it checked out ok.
after we had replaced everything we could imagine from all the sensors,tps,o2,ign mod,etc,etc....we went to our local gm dealership to talk to a tech,..1 of them took a break and came outside to talk w/ us and listened to the truck and started naming stuff it could be, we were like yep, that's new, that's new also...everything he mentioned we had already done it or replaced the part, then he asks us if we had changed the temp sensor, which we hadn't b/c we didn't think it would effect idle, he said it could be sending the ecm the wrong info, like telling it that its 300*(leaning out) and then rapidly swing in telling the ecm it was 30* below(getting rich) and the ecm would try to work w/ the info it was being sent, thus causing the problem. the dripping injector is what made him ask, b/c he said it was flooding BAD and thats was why the injector was dripping instead of spraying...which made him think temp sensor could be malfunctioning...
we stopped at advanced auto on the way home and picked up a stock temp sending unit for his 91 burb. when we got home we replaced the sending unit, and the problem went away, the injectors were spraying the cone shape and it ran better than it ever had run(possibly b/c everything replaceable had been replaced)...the truck still runs good to this day! you'd think you would be able to see this w/ a scanner, but you said it never acted up & idled erratic when hooked up to a scanner, so it could possibly be the temp sending unit sending the ecm wildly changing info. and the ecm trying to run w/ bad info being sent to it!