A few thoughts:
1. If it cranks and cranks, it's not the battery or starter. But if it is sluggish to turn over, your charging system might not be keeping up. My experience with the charging system is that the computer's applied voltage, regardless of alternator power, isn't high enough to charge the battery fully unless you occasionally take long trips to charge the battery for hours. Lots of short trips will eventually drain and degrade the battery, so we need to hook up a good battery charger--maybe once a month with an old battery or once a quarter with a new battery. That's one of the reasons I installed a solar charger
. Now my battery cranks like new, all the time.
2. Given the above, it sounds like fuel or ignition. Since it catches and runs eventually, its a fair guess that ignition is there from the beginning. That leaves fuel. I understand your view on the pump working if the car eventually catches, but that wouldn't rule out an intermittent pump or a weak pump that's slow to build pressure at idle, and could fall behind at RPM.
3. Could be cavitation in the fuel lines from a small air leak breaking the vacuum overnight. If the fuel system isn't air tight, it should produce an Evap Leak SES whenever the self test runs, but if the leak is small enough it might never see the a problem because it only runs the test when the motor is running/pumping fuel. When air is introduced overnight, the fuel settles back down into the tank, leaving the lines full of air until the pump has time to re-pressurize the system with fuel. Since it happens in the winter, that might point to an aging or shrinking seal somewhere--the gas cap seal would be the most common point of failure. My experience is that non-OEM fuel caps don't seem to seal well enough for dependable use. Could also be a leaky fuel injector o-ring, an aging fuel pump gasket, a bad Canister Vent Solenoid (or power to it), or a bad fuel line.
4. A bad sensing unit. The sensing unit is integral to the fuel pump in our Armadas. It can show plenty of gas in the tank when the tank is actually empty. If you park on an incline it could make a nearly empty tank effectively empty.
Trouble shooting ideas:
- Turn the key to ON for 10 seconds before attempting to crank. That will energize the pump and re-pressurize the lines between the tank and engine if they are full of air. If the truck always starts right up after doing that, then you probably have a slow leak somewhere that is breaking the fuel system vacuum.
- When you go to get gas, listen for the vacuum breaking as you unscrew the gas cap. If you don't hear it letting air in as you break the seal, you have an air leak. If you hear the vacuum break immediately after the engine was running, do the same test after the truck sits overnight to test for a slow leak.
- Could be an intermittent fuel pump or bad sensing unit. Here's how to replace the pump and sensing unit
for $110 or so. Replacing the pump and sensing unit is an easy DIY, though the locking ring can be fussy to turn. Be sure to replace the old gasket with the new gasket included with the pump assembly.
The dealer or a pro mechanic will tell you that you HAVE to trouble shoot with a smoke test or you'll wind up replacing good parts. That approach makes total sense if the test doesn't cost twice as much as all the suspect parts combined. Plus, replacing inexpensive parts that are past their known MBTF, instead of testing them, is the essence of cost-effective preventative maintenance.