The retry function in utils.py is overly simplistic. It does not support exponential backoff nor jitter, so it should be replaced with a more robust implementation, which can be found in libraries such as tenacity.
We might even be able to leverage something other than tenacity (or similar), given that we are aiming to eliminate our dependence on earthaccess, which might allow us to more directly make requests via httpx or aiohttp, which have related packages for retrying requests.