We DO NOT retry the request if:
- the client read anything;
- the client wrote anything;
- or we've already retried several times.
Although some requests where bytes went over the wire in either direction may be safe to retry, they're rare in practice under Git, and we'd need to puzzle out what state we can safely emit.
Since most types of failure result in an outright connection failure and this catches all of them, it's likely to almost always be sufficient in practice.