When a coder subagent fails (e.g., due to blocking dependencies or other errors), it doesn't send a completion message to notify Ava or the user.
Successful processes send a final completion message that notifies both Ava and the user. Failed processes should do the same so that: 1. Ava knows the work failed and can report to the user 2. The user gets notified of the failure 3. We can surface the reason for failure
Example: t-280.2.3 failed immediately due to blocking dependency, but no notification was sent.
Fixed by t-330. The orchestrator async thread now properly catches all exceptions and reports them via Telegram. If the coder subprocess fails with a non-zero exit code, runOrchestrator properly handles it and sends a failure notification.