Subprocess hang indefinito quando il comando esterno non ritorna
## Problema Quando `COMMAND` esegue una chiamata HTTP esterna (es. `process-payment.sh` verso `PB_BASENAME`) senza timeout configurato sul client HTTP, il sottoprocesso rimane appeso indefinitamente. Il goroutine krun che attende il sottoprocesso si blocca su `cmd.Wait()`. L'offset della partizione non viene mai committato, il consumer non avanza su quella partizione, e il backlog cresce senza limite finché il servizio non viene riavviato manualmente. Le altre partizioni continuano a essere pollate normalmente ma la partizione bloccata accumula lag. ## Impatto - Consumer bloccato su una partizione fino a restart manuale - Lag crescente su quella partizione - Nessun log di errore (il processo è vivo, solo appeso) ## Fix Aggiungere timeout di esecuzione configurabile via `COMMAND_TIMEOUT_SECONDS` (default: 10s). Al superamento del timeout: 1. SIGTERM al sottoprocesso 2. SIGKILL dopo 5s di grace period se ancora in esecuzione 3. Log `TIMEOUT[partition:offset]: key=... duration=...` 4. Offset non committato → messaggio riprocessato al prossimo restart Vedi MR branch `fix/command-timeout`.
issue