I agree that it is likely the CPS. In my experience they tend NOT to throw a code, and fail when heated up, but function once they cool down.
The CPS replacement is simple, but a total PITA to replace. It's one screw and a troublesome clip, but you have to reach around the rear suspension. It took me over an hour to replace, mostly because the bracket the clip was in bent. It is also hard to replace while wearing gloves, so be really careful if you want to avoid SKS.
The rag is recommended because of seningen's misfortune in this thread:
http://986forum.com/forums/performance-technical-chat/57438-read-before-doing-cps-swap.html