Recently was reading this issue http://dev.gbif.org/issues/browse/POR-2734?jql=text%20~%20%22420%20http%22 and wondering if GBIF might be willing to queue requests, and just fire them off when they're allowed to run, instead of the user doing 1 too many then getting 420. I have no knowledge of GBIF backend, so this may be ridiculous.
In the meantime I can add docs to the two clients for how to programmatically send of download requests, and occasionally poll until done, then fire off new ones, etc.