Hello Wes,
Sorry, but command line piping and the multi-core operation that is built into LAStools is not compatible the way you are trying to do this here. I should report an error for this constellation.
For each command line call there is one stdin and one stdout to connect the two processes via the command line pipe "|". In your case the master lasheight call will be the one that gets connected but neither of the cores-many subprocesses that it starts. Also the output file name needs to be set explicitely as there is no file name "coming through" the pipe.
Currently the only way to get this to work is with one call per file:
%lastools%\lasheight -i file1.las -replace_z -stdout | %lastools%\lasgrid -stdin -highest -step 1 -o file1.tif
%lastools%\lasheight -i file2.las -replace_z -stdout | %lastools%\lasgrid -stdin -highest -step 1 -o file2.tif