When sched_yield is called, temporarily run tasks in round-robin order until they've all had a chance to run once.

Resolves #1294.