Only queue one cache size job
This fixes the scheduler to only queue one cache size job if one is not already queued, reducing a lot of the redundantly scheduled cache size jobs.
I have omitted a regression test for this because testing this is quite difficult and racy, it's unclear if we can contrive a test scenario that is guaranteed to run redundant cache_size jobs.