A trick to using Wait Until Completion is shown in a note on the front panel of System Exec.vi.
"Note: If wait until completion? is False, standard input, output, and error will be ignored." If wait until completion is TRUE, input is taken from the Standard Input string control instead of the keyboard. So there's more to it than just waiting for completion: it determines where the input comes from and where the output goes. If your program expects some keyboard input and you don't provide it in the Standard Input string control, the program might proceed when you expect it to wait or it might wait forever for input that's not coming.
For some interactions between programs called by System Exec.vi and LabView, I have the called application create a file
when it's done. LabView can be in a loop checking for the existence of the file using File/Directory Info from the File I/O >> Advanced File Functions function palette. If the file doesn't exist, File/Directory Info will generate an Error Out. The loop will check Error Out and stop if no error was generated.
See the attached VI and batch file.