I really don't think the iteration over all queues of a tagset makes a whole lot of sense. We really need to replace the per-queue limit with a per-tagset one (or at least add the per-tagset one) and then allow tweaking that in the block layer instead of writing this boiler plate code.

