make sched_task more robust (#59669)
If the sched_task ever dies, we need to recreate a new one. Creating a
new one is very cheap, so it is unclear why we don't always do it this
way. But at least do it this way if it ever dies (e.g. from an untimely
InterruptException).
Fix #58689