Cages - you can fit (16) caged enemies in a mine cart. Seems to be faster to move (16) at a time via the carts then to just wheelbarrow it.
Near the entrance where you have all your cage traps, create (1) quantum stockpile for empty cages, (1) for full cages and (1) for mechanisms. Typically, mine all look like:
...
.>Q
...
. = source, take-from-anywhere, stockpile (with wheelbarrows for the cage stockpiles)
> = constructed track stop that dumps towards "Q"
Q = quantum pile, take-from-nowhere
Those stockpiles are usually just outside the inner drawbridge. Outside of any windy trap-lined path and as close to the cage traps as possible without being exposed. By keeping your "full" and "empty" cage piles near your cage traps, you can absorb large numbers of enemy forces and still reset the traps quickly.
Inside the walls, I create a 2nd quantum minecart-powered stockpile for filled cages, which pulls from the outer stockpile. That then feeds to a track which sends the full cages down to the top of the pits. Domestic critters and dwarves are excluded from that ride.
At the top of the pit, I have a single 1x1 quantum tile which accepts full cages. Next to that tile, I have a "dump" stop which unloads the cart. That gives you a quantum stack of cages right next to the pit hatch.
...
Now, I've tried using the same hauling route with (4) stops in order to bring empty cages back to the start point from the pit head, but the problem is that because you typically "pit" things in batches, there's not an even flow in both directions. That means your route is going to be very slow at moving enemies around.
In cases where the flow is uneven across time, I think it's better to define (2) routes, each with (2) stops. One to take full cages down to the pit head, another to bring empty cages back up near the entrance.