Una delle questioni più importanti è che il tuo programma che viene lanciato stampa "Prompt: " ma senza alcun newline dietro. Mentre la readLine() del BufferedReader aspetta fino a quando non riesce a leggere una linea terminata da un newline.
Quindi la prima questione è che il tuo programmino lanciato non scrive subito una riga completa di newline mentre il tuo programma Java parte cercando di leggere una riga terminata da newline e quindi si blocca.

Poi comunque la questione è anche un'altra. Se nel tuo programma Java vuoi fare tutto "sincrono" cioè leggi un po', scrivi un po', leggi un po' in sequenza, ecc..... allora devi sapere in anticipo quante righe scrive il programma lanciato. Non puoi fare un normale ciclo while di lettura.
Se il tuo programma lanciato scrive 1 riga e poi aspetta dell'input, tu da Java non puoi fare un ciclo di readLine() del tipo "finché ce n'é...", perché non ne usciresti più. La riga la leggerebbe ma poi resterebbe lì a leggere.