The 'u' and 'j' options (enabled by default) specify whether empty cages of those types are to be stored in the stockpile. If you only want captives you should disable those, and if you only want empty cages you should disable all the creatures (easiest done by disabling all and then reenabling 'u' and 'j').
I don't use stockpiles for pitting. Instead, I build the cages around the pits ('b'-'j'). If you want to separate different creatures into different stockpiles you go into the creatures list and disable the ones you don't want (or disable all and enable the ones you want).
I'm not sure, but I don't think animal hauling is the job for hauling cages. Instead, I think animal hauling is for pasturing (and probably caging). Cage hauling is probably item hauling.
I don't think you can separate on undeath.
Note that pitting carries a risk of the victims breaking lose while being pitted, so stationing militia in the area is recommended, but you'll still probably get some civilian injuries.
I've mostly used two other execution methods involving hooking one cage up to a lever at a time. One is to release the victim into the arms of the militia for slaughter. That provides live training and (eventually) bones, but induces stress from corpse hauling.
The other method is to build the cage at the end of a corridor with a pressure plate hooked to a 10 tile long raising drawbridge (should really be two drawbridges) and then a door. When the cage has been build and hooked up to a lever, I lock the door and order the lever to be pulled twice (to get it back to the activation state). The victim is released, steps on the pressure plate, walks onto the bridge, get flung, and finally smashed. With a single bridge trolls eventually destroyed the door (took a hundred or so trolls, though, and the final one still got smashed). The locked door ensures your dorfs don't get themselves smashed trying to recover the cage(s), mechanism(s), or cleaning up blood splatters (from previous executions).
Pitting undead is a pain, because they usually don't have names, and when building a cage you can't see more than creature type, gender, and cage type. One way I've dealt with that is to build all the cages and then remove all the ones containing e.g. male lashers. Then I rebuild those cages by the pit.