sched: cleanup: refactor common code of sleep_on / wait_for_completion