RUN-SHELL-COMMAND or RUN-PROGRAM with :WAIT NIL and :INPUT :STREAM return streams on which output seems not to reach the external process. This has been reported before: https://sourceforge.net/p/clisp/mailman/clisp-list/thread/A8A38D0C-09C3-4FA3-923F-3EC22D1F65F5%40informatimago.com/#msg35715299
Please see the attached. I believe the root problem has to do with the ampersand these append to the shell command string they pass down. Perhaps those ampersands are unnecessary.
Additionally, the publicly available documentation for these operators is out of date. This is described in the attached.
Finally, as far as I can tell, there's no race-free way for a program to obtain the status (especially termination status) of the external processes Clisp creates. This is discussed in the attached.