Previously DONE was skipped with continue, so keep-alive connections could hang forever after the model finished. Also fail fast on HTTP error statuses for stream and non-stream completions.