do not close response until buildError finishes

`s3_test#TestGetNotFound` failed because `run` tries to decode `hresp.Body`, but
the body's already closed. This patch defers `hresp.Body.Close()` until it
finishes building the error.