Try this test. The idle speed control module is a sandwich sized black box mounted dead center in between your two firewalls. When your car is idling high, tap it. This may or may not reveal the source of the problem. My car did exactly as you stated and after researching this forum, I decided to resolder some of the solder joints on the circuit board contained in that box. Those cars are really prone to broken solder joints at this age. I have had three different components suffer this problem. Two have been repaired already by resoldering and the other (cruise module), I am just too lazy to start on.
There is one 10mm nut holding that box in place. Once out of the car, use a screwdriver in the slots to pry up the locking tabs. It takes a bit of work to get them all loose at the same time. I bent mine out of shape so they wouldn't catch again as I went around. They later return to their original shape. The board slides out attached to the base plate. Use a clean soldering iron and some resin core solder to rewet as many joints as you can get to without making a mess or joining two of them together. Work quickly on the joints to prevent damage. It shouldn't take more than 1 second to get a joint rewet with fresh solder. I find that a small ball of fresh solder on tip touched to each joint works really well. Every couple of joints, knock off the old ball of solder and replace it with fresh to keep the oxidation down and fresh resin in place. If you join two joints by accident, you can clean your soldering iron and wipe the tip across the board between them quickly and it will take out the union.
The skill involved is no more than that of sewing a button back on a shirt.
The best part of this "repair" is that it is nearly free or even free if you already own the soldering iron and solder.