Does Arduino need a real-time scheduler?

sleep(); causes THIS thread to release the CPU back to the RTOS.

No, no! If we had an RTOS with threads we can just use delay() (naming conflicts aside.)
I want to know what APIs we can use FROM NOTHING, because I think basic RTOS concepts are too difficult.