I have a 2003 Yukon Denali. For me, this problem is resolved by replacing the CRANKSHAFT POSITION SENSOR (CPS). It failed on me the first time at 90k miles. I've replaced it twice since (currently 190k miles). About to have it replaced again. Replacing this part also resolved a P0300 (multi-cylinder misfire) error that popped up as the second CPS died. Note that the multi-cylinder misfire error only came intermittently, cruising at freeway speeds (> 65 mph) and had no noticeable symptoms (e.g., loss of power).
The first symptom that I always notice is that there is often a noticeable "delay" (e.g., from normal - you get a feel from your vehicle) from turning your key until when the starter engages. Eventually, the delay becomes my first "no crank" event.
On, my first go-around with this problem, I had various mechanics replacing everything in the starting chain. Eventually, I found a mechanic (Westphal Chevrolet, Aurora, IL) who just "knew" about the problem. Apparently, the programming in the PCM checks the sensor (impedance?) before powering the starter circuit. No pass --> No crank --> No start. Apparently, this test has a very low tolerance for variation.
So, the problem isn't that the CPS is "failing," it simply is going "out of tolerance" for the PCM to accept it and crank the engine. This probably explains why (for me) the problem seems to initially pop up on cool, humid days after the vehicle was driven only a few miles (e.g., my son driving home from high school after lacrosse practice at 5:30 pm) and leaves it in the driveway. Temperature and humidity affect the impedance. Simple material science, but I'm guessing at the diagnosis. After the vehicle sits in the sun for a few hours, it starts up and runs like a champ. Note that there are never any error codes stored for the failed start.
It gets worse over time. Sometimes quickly.
None of this is not documented (shop manuals or TSBs) by General Motors. And, the PCM is not programmed to throw a code when the test fails. No code + No documents --> Mechanics don't believe the CPS could possibly be part of the problem.
Every time I need it replaced, I run into the same problem. The mechanics want to test or replace everything in sight. But, it is nearly impossible to diagnose because the problem is intermittent. The vehicle isn't "dead." It just won't start on occasion as the CPS starts to age. But, it eventually starts and works fine for days (or weeks). So, the mechanics can't replicate the problem.
My solution has been to recognize the issue and address it promptly when it arises. I actually drive around with an extra CPS in my "emergency kit," even though I haven't attempted to replace it myself (you need a GM Tech II scanner to force a CASE relearn after changing the CPS).
The secret to getting your mechanic to replace the CPS is to tell him what you want done - EXPLICITLY. Don't talk about your problem with him. You just want a new CPS because you are weird about sensors. Make sure that they complete the CASE relearn procedure after changing the CPS. I paid < $250 to have a Chevy dealership do this for me in August, 2015. My local mechanic does it for < $200. The bottom line is that if you talk about the problem, they will burn far more than $250 of your money to find or fix nothing.
Finally, if you make the mistake about talking about the problem with a mechanic, stay focused on what could be causing the problem. I've had a few mechanics talk about problems with the reluctor wheel. That is the part inside the engine case that spins beneath the CPS, creating pulses via what is known as the "hall effect." But, the reluctor wheel can't be part of the "no crank" problem because it would have to be moving to do anything. No crank = Not moving. So, it is a physical impossibility.