Why doesn't the UnityWebRequest have any functionality/fields for things like retryCount, timeBetweenRetries, and timeout? I feel this is a basic feature of any wrapped web request, but especially one meant for building games.
It's really annoying (and ugly) to code manual timers and retry logic for the current UnityWebRequest. Even when we wrapped the UnityWebRequest to include these features, we found we had to allocate a new request for each retry as well as manually copy the information over from one request to another. This is due to a request not being able to attempt to send again after failure and because UnityWebRequest does not contain a constructor that takes another UnityWebRequest for copy.