Clearly I need to learn more about terminals, shells etc.
Your ref to "xterm -hold" made me realise my "Exec=lxterminal.." line was just creating a window that destroyed itself without visible output.
In fact it's worse than that, if I use your second example and the command was just a simple "ls -l" then the lxterminal window just flashes on screen. But, if the Exec line in the desktop file is for example:
Exec=lxterminal --working-directory=/home/chris/ -e "./mytest"
and mytest is:
#!/bin/bash
ls -l
echo " "
read -s -r -p "Press any key to exit... " -n 1
echo ""
You finally get an Lxterminal with output that only destroys itself after a key press.
My big mistake was I thought the lxterminal man pages meant you could open a lxterminal at a given working directory, automatically run a command/script with the usual shell prompt. It doesn't work that way.