Claude CLI occasionally hangs after writing signal.json but never exits. Add an optional signal check to pollForCompletion: after a 60s grace period, check signal.json every 30s. If a valid completion signal is found while the process is still alive, SIGTERM it and proceed to normal completion handling.