More graceful invalid JSON handling (#29295)

Now we're more tolerant of invalid JSON coming back from the model
(possibly because it was incomplete and we're streaming), plus if we do
end up with invalid JSON once it has all streamed back, we report what
the malformed JSON actually was:

<img width="444" alt="Screenshot 2025-04-23 at 1 49 14 PM"
src="https://github.com/user-attachments/assets/480f5da7-869b-49f3-9ffd-8f08ccddb33d"
/>

Release Notes:

- N/A
f6774ae60dRichard Feldman committed on 4/23/2025, 6:08:26 PM· committed by GitHubparent92e810b
1 file changedLine totals unavailable