From what I understand of DataNode decommissioning it appears that all the blocks are scheduled for removal in order.. I'm not 100% sure what the ordering is exactly, but I think it loops through each data volume and schedules each block to be replicated elsewhere. The net affect is that during a decommission, all of the DataNode transfer threads slam on a single volume until it is cleaned out. At which point, they all slam on the next volume, etc.
Please randomize the block list so that there is a more even distribution across all volumes when decommissioning a node.