While I know this is a bit of an older thread, I thought I'd share some progress I'm making with my case of this problem. (2015 15" rMBP bone stock with iGPU only).
Good troubleshooting starts with being able to consistently reproduce the issue. I fiddled a bit with the terminal utility "pmset" as others on the internet have done already. However, I made some different changes in order to make the issue happen constantly, so I'd be able to actually troubleshoot it in a timely fashion.
(THE FOLLOWING IS NOT A FIX, Please do NOT try this at home unless you know what you're doing!)
I set the following values:
sudo pmset standbydelayhigh 1
sudo pmset standbydelaylow 1
sudo pmset autopoweroffdelay 1
sudo pmset hibernatemode 25
(and now for the thing that actually did the trick: )
sudo pmset disksleep 1
What the above does is that it sets all the delays for hibernation etc. to 1 second. It sets hibernate mode to 25, which makes macOS always write an image of current system memory to disk, and sets it so that the disk will sleep after only one minute.
The first 4 changes make it so that it'll pretty much always write the hibernation image to disk as far as I'm aware. This seems to be working fine. However, once the disk goes to sleep. That's when the issues start. According to
this KB article from OWC, ALL NVMe disks in macOS could be affected. So not just upgrades after the fact. This sentence comes from reddit user EddySmeddy: "The basic problem is that the NVMe drive wakes up slower from standby than the machine, and so for a split second, the machine thinks there's no drive, and crashes. That's why it happens when the machine sleeps, but generally not on start up. It's a timing issue."
This seems to add up with my findings so far. In case anyone else has already done the same as me, my apologies, I probably just hadn't read that yet
Using this method, I'm pretty consistently able to reproduce the issue.
No actual fix yet so far, but hey maybe we can get a step closer now