After many hours of testing and cursing I have finally figured out the problem.
I was pulling out my hair because IPN testing seemed to work. PayPal indicated a 200 status for the IPN so obviously Magento had received the information. The order number was correct. The dollar amount was correct. But the order kept showing as Pending. So as I am about to give up I decide to try one last thing. I had installed an extension and a 2nd store in Magento. The idea was to give the site a mobile version of the store. This seemed to be where the problem was. I removed the extension and 2nd store and the payment processing worked again.
There probably is a workaround for the IPN and multiple stores issue but I am not sure I care to mess with that right now. If someone knows an easy fix for IPN and multiple stores please let me know. I will certainly bookmark the thread for future reference. Obviously at some point the site will get a mobile version of the store and I will want PayPal processing to work.