A context cancellation / missed deadline is permanent, and if it happens while retrying, there is no point in making further attempts. However, Retry()
continues trying even if the developer's action returns a non-nil error from Context.Err()
. It also sleeps for the full duration instead of waking up immediately.