We now submit to the scheduler here, instead of in the consumeAvailable function.  This allows this to be overridden and allow better code use.