Reschedule instead of switching to delayed threads.

This will hopefully take care of #5263, and might fix other issues too.
If a thread goes into a wait, it may reschedule right into an interrupt.

In this case, it would've been switched back to, and woken up early.
Merge pull request #5268 from unknownbrackets/intr-fix

Reschedule instead of switching to delayed threads