For testing this issue, I added logging to the scheduled task. I built a .bat file to launch a browser and saved in my C:\Scripts folder.
@echo %date% %time% Start
start msedge http://www.eagl.org
@echo %date% %time% End
I configured the task to run cmd.exe with these arguments.
/c c:\Scripts\LaunchEdge.bat 1 >> c:\Scripts\LaunchEdge.log 2>&1
It looks like this.

I set the task to run at 8:40am and I locked my pc.
When I subsequently unlocked my pc I saw that the task scheduler launched it at 8:40 and I saw that the tab was opened.

In the log file I see the timestamps.

Next I set the task to run at 8:55. This time I closed the lid on my laptop. I have configured my pc to hibernate when I do that.
I opened it back up at 9:00am.
But it took 6 minutes for the task scheduler to recognize that the launch was missed. That was recorded in the history and the log file.


Here is how I configured the task. Note that I do not have Run with highest privileges checked.



I would suggest that you review the settings and implement logging so that you easily see if the task is being launched and when.
One more tool that I can offer is a Powershell script that I wrote several years ago named TaskWatcher.ps1. Modify it to reference the name of your task.
https://social.technet.microsoft.com/Forums/en-US/c0be6139-5198-46b2-9135-4e6dae49adaa/scheduled-task-firing-on-the-wrong-day-consistently?forum=winserver8gen
It will monitor the state and note the last and next run times. If the task runs quickly, it won't catch the Running state. If your pc sleeps or hibernates, it will detect that the TOD clock has changed.
