doc: add detailed scheduler documentation

I think that's a little bit confusing with the first part of the text. There, you distinguish between voluntary context switches and blocking functions with `thread_sleep()` as an example for the latter one, and here you listen `thread_sleep()` as an example for voluntary context switches.