Perform more aggressive scheduling

When scheduling a thread, if it is an instruction that does not consume
any input, execute it right away and recursively schedule the next
thread(s).