I would just use a high level VM language like Java or Python that would recursively traverse down a given server folder, locate all files needed (like .bsp), compress them to bz2 with the max compression, and then write out the files to the fastdl directory (or upload them or whatever). It also would allow multiple files to be compressed at once, so there's also the parallelism advantage there.
It would also be cross-platform too. I don't have the time at the moment to throw something together but it should be relatively straightforward, depending how complex you want it to be.