Changed the behavior around setting different values within the PriorityScheduledExecutor.  If the value is changed in a way that old workers may exist that need to be cleaned up, we now cleanup on that actual call (instead of waiting for another task to complete first).  In addition I made some small changes inspired from the reduced_string_duplication branch.