This keeps the previous fix, but makes the interface a bit stricter and more obvious as to what is happening.  It forces you to pass in the DynamicDelayedUpdater on the reposition call.  Thus allowing the DynamicDelayQueue to still only require Delayed items within it, and the updater is only required when actually doing the reposition call which it is necessary for.