I finally found the problem, thanks to the techs at my local dealer. I had my truck in there for an oil change and just wandered back into the service area to talk to them. When I told them what the problem is, they pointed me right at the culprit.
I found an itermittent short, caused by chafing, in the wiring harness for the tow/haul switch. You have to take of the steering column cover (which requires that you pull the ignition switch, not a big deal, you just need to know how). Where the harness comes out of the shifter column, it was rubbing on a sharp corner. It had rubbed through the shrink wrap on the harness, all the way though the insulator on one of the wires. I just cheaped out and wrapped it real good (the harness) with electrical tape. I also put three layers of tape over the sharp corner on the shift column. If I'm lucky, it won't happen again (I wrapped the harness about six times with tape, so it'll take quite a while to wear through).
If you need to remove the ignition switch, you have to put the key in and turn it to run (it's recommended that you disconnect the battery, although I did it with it still connected). There's a small hole in the bottom of the igintion switch with a lock pin in it. I used a small punch. Press on the pin and the switch slides right out. After I got the column cover off, I put the switch back in and turned the ignition off. Once the repair was done, I just repeated the steps to put everything back together.
Hope this helps.
I owe the guys at the dealership a couple of beers!