I think some gateway APIs let you set the descriptor on a per transaction basis. That seems like the ideal solution.
Probably the most effective way to reduce mistaken chargebacks would be to let the user specify part of the descriptor. They could say "Ask Peter" or something, so if the accounting department didn't recognize it they would ask Peter or "Ask IT" or whatever.