I assume it runs fine warm once it starts?
I would first see if its spark or fuel.
Get some Quick Start(ether in a spray can)
Next time you have a hard start pop the hood pull off a vacuum line and spray ether into intake, PCV or power brake hose are good ones to use, put vacuum line back and try to start, if it still just cranks then spark is the issue, if it fires up then fuel is the problem.
When you turn the key to RUN(on) the computer turns on the fuel pump for 2 seconds to prime the fuel system, and then checks the ECT sensor(engine temperature).
Computer opens IAC valve all the way for starting, this is why idle goes up then drops on every start, if it doesn't then clean IAC Valve.
When you crank the engine the computer looks for the CKP signal(crankshaft sensor), this is what tells the computer to start the spark and the fuel injectors, if CKP fails then it will never start, never heard or even read about an intermittent CKP.
So engine is cranking, if ECT shows cold engine then computer opens injectors longer for richer mix, if ECT shows warm engine then computer opens injectors normally.
Cam sensor, O2 sensors and pretty much any other sensors are ignored at startup, so are off the table as far as causing a problem.
There are a few things to try:
Turn key on count to 3 then turn key off, repeat 3 times, then try to start engine.
What you are doing is building up pressure in the fuel system, if this works then fuel system is losing pressure when truck sits, but I think you would have trouble the longer it sits, not the other way.
Next test, after engine has only been off an hour or so, turn key on, then push gas pedal all the way to the floor and hold it there, this turns on a software routine in the computer to clear a flooded engine, with gas pedal to the floor the TPS(throttle position sensor) will be sending 4.8volts to computer, computer will then turn off the injectors during cranking.
Crank engine for at least 10 seconds, if it starts to fire then there is residual fuel in the intake manifold, there shouldn't be, could be a leaking injector or pulse damper is bad and fuel is coming in via its vacuum line.
Next test, unplug the MAF sensor then try to start, could be MAF is dirty and giving computer incorrect data, this doesn't always give a code, check engine light will come on with MAF unplugged, it will go off when it is plugged back in.
Last edited by RonD; 01-11-2014 at 09:24 PM.