pub fn schedule() -> !
Start the scheduler (called from kernel_main)
Picks the first task and starts running it. Never returns.