Beh...ho risolto. Ed era una stupidata: la chiamata alla procedura esterna era, giustamente, impostata con system che infatti aspetta che il controllo venga restituito dal processo figlio al processo padre. Il problema era che la chiamata era nella forma "comando &" e così il processo veniva creato in background e lo script perl continuava il ciclo autonomamente senza aspettare che la chiamata esterna avesse finito le sue computazioni. Semplice...ma il Lunedì mattina certe cose non si notano