The S3 backend passed context.Background() to every AWS call, so an unreachable but well-formed endpoint blocked until the OS TCP timeout with no way to interrupt it. Write, Stat and Remove now take the caller's context.