I figured I'd revive this thread because it seems that I've found at least a temporary fix to the rough idle issue.
A few weeks ago my Denali was taking longer than normal to start, maybe 10s of the starter turning before it would kick over. After a week or so it finally threw the P0340 code and check engine light came on. The next day the light was off, it started fine...and continued to start fine for a few days.
I decided to buy a camshaft position sensor (NOT crankshaft), and had the dealer install it. So far, it hasn't had any issue starting and my idle is COMPLETELY stable....I mean, it doesn't feel like it's misfiring, doesn't "bump".....feels exactly like I'd expect it to, smooth and responsive. It also seemed to get rid of the tiny lag it had when you'd release your foot from the brake, and hit the gas.
It's only been a few days...but so far it's been pretty noticeable. I hope it continues to run this way and proves to be a permanent fix.