How about this set-up?
2 asymmetrical, adjacent stockpiles with the appropriate containers enabled for both.
The larger workshop is for workshop/farm feeding, while the smaller stockpile is for gathering.
The larger is set to only take from the smaller stockpile. The smaller stockpile is set to gather from anywhere.
If all goes well, the containers on the smaller stockpile will be used for the merry embark-wide journeys that haulers love to take. The containers that actually feed the workshops/farms should remain where they are, since they're set to only take items from the gathering stockpile, which is empty while haulers are off on their collection fest. When the haulers return to the stockpile, the newly filled container should immediately queue up a hauling job for transfer to the main stockpile next to it. If we're lucky and there's an empty space in the larger stockpile, the entire container might be moved over in one go. Otherwise, one container from the larger stockpile will be used to transfer goods, but it should be quick, since the stockpiles are adjacent. This should remove a lot of the cancel spam, and still allow dwarves to efficiently gather items without carrying precious items outside the fort in their collection container. Since the workshop/farm feeding stockpile is larger, it should keep the containers in the smaller empty after each hauling spree and ready for the next.