call thread_yield instead of sched_run directly to trigger context switch

This looks more sane to me.