Changes to make sure the delay in the queue remains constant while inserting into the task queue.
This is what we do in the PriorityScheduledExecutor.  I do feel it is a bit awkward, hacky, and complicated.  So I would like to improve this in the future, but this seems to be at least technically correct.
I also made the ClockWrapper instance based instead of static, that way we will have less contention and interaction from possible multiple instances.