Added an ability to pass a callback to .pause(), which will be called once all pending tasks are executed

This makes sense, since sometimes we want to pause the queue to execute a maintenance task, but we need to do this while no queue tasks are pending. Essentially this is a "pausing is complete" callback.