I've worked around this problem on each mac laptop I've owned over the years by configuring "hibernate on lid close."
When I open the lid of the mac it takes maybe 20-30 seconds to resume. I consider this a small price to pay in exchange for reliable sleep and less battery drain with the lid closed.
If you want to try this, run in the terminal:
sudo pmset -a hibernatemode 25
If you don't like it, you can restore defaults with:
When resuming from hibernation I’m not prompted for credentials until the system has resumed, so I have to imagine the disk remains decrypted, i.e. same behavior as sleep.
I've had to do this to my Windows laptop recently after it started completely draining the battery when going to normal sleep. Wakes up reasonably quickly still, and no power management problems!
SAFE SLEEP ARGUMENTS
hibernatemode supports values of 0, 3, or 25. Whether or not a hibernation image gets
written is also dependent on the values of standby and autopoweroff
For example, on desktops that support standby a hibernation image will be written after the
specified standbydelay time. To disable hibernation images completely, ensure hibernatemode
standby and autopoweroff are all set to 0.
hibernatemode = 0 by default on desktops. The system will not back memory up to persistent
storage. The system must wake from the contents of memory; the system will lose context on
power loss. This is, historically, plain old sleep.
hibernatemode = 3 by default on portables. The system will store a copy of memory to
persistent storage (the disk), and will power memory during sleep. The system will wake from
memory, unless a power loss forces it to restore from hibernate image.
hibernatemode = 25 is only settable via pmset. The system will store a copy of memory to
persistent storage (the disk), and will remove power to memory. The system will restore from
disk image. If you want "hibernation" - slower sleeps, slower wakes, and better battery
life, you should use this setting.
Please note that hibernatefile may only point to a file located on the root volume.
When I open the lid of the mac it takes maybe 20-30 seconds to resume. I consider this a small price to pay in exchange for reliable sleep and less battery drain with the lid closed.
If you want to try this, run in the terminal:
sudo pmset -a hibernatemode 25
If you don't like it, you can restore defaults with:
sudo pmset -a hibernatemode 3