This contains a bunch of smallish but nasty fixes:
- Heartbeat timer was never reset after first heartbeat
- Use same return value when stderr is closed as when stdout is closed
- Always check proxy process status since it should also be done when we
get to this point (either it died and our task stopped, or our task
stopped and we dropped the process handle and it was killed on drop)
- make error messages less wrongly-specific
Release Notes:
- N/A
Co-authored-by: Bennet <bennet@zed.dev>