Which of the three solutions here might solve the problem?
https://pdf.wondershare.com/macos-10-14/fix-mac-wont-wake-from-sleep-on-macos-10-14.html
And your 2nd question: Will this problem be gone if I update to Catalina? This depends on the cause of the issue, as yet unknown, so "maybe".
That article is designed to address a related but slightly different issue. Some of the sleep related pmset commands may help: Or use the commands below in terminal or iTerm (I have these set on a 2012 model 13,2 iMac and it wakes up instantly, running Mojave)
1. pmset -g Use this command in terminal window to show your current sleep settings
hibernatemode = 0 (binary 0000) by default on supported 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. This should be Faster than the setting below;
hibernatemode = 25 (binary 0001 1001) 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.
2. To set hibernate mode to 0 (normal sleep, data kept in ram, nothing written to disk)
sudo pmset -a hibernatemode 0 or
sudo pmset -a hibernatemode 0 standby 0 autopoweroff 0
To delete the now unnecessary sleep file (hibernatemode 0 ) to regain disk space equal to memory,
You can use the Go to folder menu to delete the file, found in the /var/vm/ folder, and named sleepimage. Reboot and simply delete that file,. Or use this:
3. sudo rm /var/vm/sleepimage or sudo rm /private/var/vm/sleepimage
The sleep image file is actually in /private/var/vm/ but /var/vm/ is a symbolic link to that location.
Optional: Create a blanked zero-byte file so the OS cannot rewrite the file:
sudo touch /private/var/vm/sleepimage
Make file immutable:
4. sudo chflags uchg /private/var/vm/sleepimage
If pmset -g shows: autopoweroff 1,
disable this automatic hibernation mode (happens even if hibernation mode is set to 0 on the Mac mini 2012 and iMac)
sudo pmset -a autopoweroffdelay 86400
5. sudo pmset -a autopoweroff 0
when any late model Mac is connected to AC power, it goes into a deeper "safe sleep" mode after 4 hours if there's no activity from wireless/Ethernet/USB devices. It's waking up from safe sleep that's causing issues with Thunderbolt. You can disable safe sleep by bringing up Terminal and entering the two commands shown above:
set the safe sleep timer (standbydelay) to 20 hours, default is 4200 (1.67 hr)
sudo pmset -a standbydelay 72000
6. sudo pmset -a standby 0
Bit 3 of hibernatemode encourages the dynamic pager to page out inactive pages prior to hibernation. So swap can be used even after sleeping (even though hibernatemode is 0, so bit 3 is off). Disable this new, possibly buggy behavior by switching off standby: