Investigate using librepo for downloading from RPM repositories
Librepo is the "official" library for downloading RPM repositories, it has built-in support for mirrorlist, metalink, gpg checking, proxies, picking the fastest mirror, speed limits and so forth. This could potentially eliminate a fair bit of complexity and code that we otherwise have to handle ourselves.
It's a C library but it has Python bindings. It may or may not be suitable given that we don't necessarily want to bypass the "remote" infrastructure.