I'm going to assume for now you have an unusually-long crank time. If that is correct, there's two things to consider. First, observe the fuel pressure when the problem occurs. If it has bled down over many hours, suspect a leaking fuel injector. The fuel pump will run for one second when the ignition switch is turned on, but that is usually not enough to get the pressure up high enough for the engine to run.
The second thing is to check for a failing crankshaft position sensor or camshaft position sensor. In the '90s, the engine would not start or run if either one failed. Around the early 2000s, the engine would continue to run if one sensor failed, but once stopped, it would not restart. I've been told by the mid 2000s, the engine will start and run with one failed sensor, in a back-up strategy, but it will take more revolutions than normal for the Engine Computer to determine which piston is coming up on top dead center. It has to figure that out before it will know which ignition coil to fire.
If you're lucky, there will be a diagnostic fault code to tell you if a sensor signal is missing. If there is no fault code set, you need to use a scanner to view live data. The two sensors will be listed as "No" or "Present" during cranking.
Tuesday, March 7th, 2017 AT 9:39 AM