#33404 [Bug]: Streaming upstream reset is converted to synthetic finish_reason stop / [DONE]
### Check for existing issues
- [x] I have searched the existing issues and checked that my issue is not a duplicate.
Related but not duplicate:
- #29602 discusses mid-stream timeout failures being logged/accounted as success. - #24929 discusses stream failures related to HTTP client TTL.
This issue is specifically about an upstream streaming TCP reset being converted into a synthetic successful terminal SSE event.
### What happened?
When LiteLLM Proxy streams from an OpenAI-compatible upstream provider, if the upstream provider:
1. returns `HTTP 200` with `content-type: text/event-stream`, 2. sends one or more valid SSE chat completion chunks, 3. then the TCP connection resets before the upstream sends a final `finish_reason` or `data: [DONE]`,
LiteLLM can synthesize a successful final stream event:
```text data: {"choices":[{"delta":{},"finish_reason":"stop"}]} data: [DONE] ```
This makes an abnormal upstream transport failure look like a valid model completion.
Observed variants:
1. If the upstream resets after only an initial assistant role chunk, the client receives an empty successful stream:
```text data: {"choices":[{"delta":{},"finish_reason":"stop"}]} data: […