reconsider a different scheduling system
There is a chance that people may try to request more binaries than the system can store at a given time. See: tpo/tpa/team#40683 (comment 2789364)
This can be dealt with using a counter to measure the number of files being currently downloaded and uploaded, and making every other async process "sleep" for 30 seconds (configurable) until this said variable stops being higher than the number in question. We could also use events, but I think that this approach may be overcomplicating things.
Additional note: The counter should be also modified if an upload fails for any reason.
Edited by n0toose