So tonight I switched the 4 sensors around hoping to cause a different code, no luck, so I went ahead and removed the valve covers and found one spark plug well was flooded with oil, a gasket we replaced had got snagged on install and over time caused an oil leak. Got some new ones on the way, hoping that's the only problem. Chains seem to still be tight as suspected, hopefully I caught this before the oil leaked into the cylinder too much.
The leak was in the back under the intake, if it was in the front I would have seen it from the outside and been able to fix it sooner. Fingers crossed that's all it is, a $20 fix is much better then taking that damn engine cover off again. Even though I was getting a code for a camshaft error I'm pretty sure this is all it was. Will update next week.
FYI using a spray bottle nozzle and tube works great for getting fluids out of where they aren't supposed to be.