So ever since I ran the Spring Creek trail a few weeks ago my '02 Jeep JT has had a hesitation/miss at idle. At higher rpm's it will smooth out and run fine (though with a noticeable loss of power) but after a few hours of wheeling and the CEL being on the jeep really started to give me issues so much so I had to limp it to the nearest shop... a NAPA in Idaho Springs. A quick scan showed 3 codes, misfire in cylinder 3, cylinder 6, and a random cylinder misfire. Replaced the coil in the parking lot and the Jeep seemed to run fine back to Denver until the hesitation/miss returned just before getting home.
Fast forward two weeks and I have replaced the fuel injectors, light tested the injector harness to confirm power was getting to the injectors, tested the fuel pressure at the injector rail, tested for any leak down in the fuel system, tested the voltage at the fuel pump, cleaned the throttle body, replaced the IAC and TPS, tested all 4 (yes 4) O2 sensors finding one bad one which was promptly replaced. After all this no luck on solving the issue. Now you might be yelling at your screen saying 'replace the spark plugs!' but one of the first things I did was remove, inspect and confirm gap on all of them. Even switched plugs to different cylinders plus they were only ~10k miles old. No dice. Still miss fire on cylinder 3 and 6.
Very frustrated at this point and thinking I might have a bigger cylinder issue, the wife finally convinced me to go ahead and replace the spark plugs to just to eliminate that as a problem. Problem solved. Runs smooth.
Moral of the story is even if you think it's not the issue, replace (or if possible eliminate) the simple, obvious issues before dumping a bunch of money into other things.... and trust what your wife says... she is always right