Ti puoi limitare a richiamare waitpid(-1, NULL, WNOHANG) finché non restituisce 0 prima di mostrare il prompt: in questa maniera eviti di avere processi "defunti" in giro ma non blocchi la shell.