sys_sched_yield was calling block_current_and_run_next, which left the task in Blocked state and never re-queued it, causing waitpid to hang indefinitely. Use suspend_current_and_run_next instead so the task returns to the ready queue.
Co-Authored-By: Claude Opus 4.7 noreply@anthropic.com