There seem to be several failure modes. Based on print statements, one situation occurs after the child script has completed. Somehow the child process is hanging on exit.
There's no explicit piping going on, although stdout and stderr are being inherited from the calling script.