Send a request and return its body as text. For endpoints like
/jobs/{id}/trace or /builds/{id}/log that return plain text
instead of JSON — bypasses send_json’s serde_json parse step.
Same error shape as send_json: status check, contextual error
message, single point of timeout enforcement.