Hi, please forgive the novice level response here….
We’ve had the same problem with Go Daddy with daily posts missing the scheduled publishing time usually between 5am-6am daily.
Finally got a response that made some sense.
Go Daddy uses a “virtual cron” which for us meant that it was “asleep” at the time our posts would fire and to not have the problem they say all we need is a page request (front end or wp-admin) to have the virtual cron activate.
Option A – have a page request execute before the scheduled publish time
Option B – move to CPanel hosting and have 100% active “real” cron all the time.
Any input to resolve this would be greatly appreciated.