Marked as helpful by the asker
On Hobby the ceiling is fixed. Either stream the response (the function stays alive while bytes flow, and the user sees text early) or move the call to a queue and poll. Streaming is the one-hour change and the better UX anyway.
Streaming it is. First words show after about a second, and nobody complains about the 30 seconds anymore.
kai_makes