Removing closure chaining.

With the new queues it seems it wasn't that useful anymore, and only added
complexity.
Fixing double-step behaviour with hack.

The step was being invoked by two tasks, which isn't good.
This is a hackish fix, they both still invoke it, but only one
actually takes effect (still will still have a race condition though).