Possibly there is a modal dialog behind a window; try ALT-TAB to see the window list. If there is a dialog, it will tell you what JMP needs to know before proceeding.
If it is still hanging, try ESC on each of the JMP windows (as you ALT-TAB through them.) If that works, CTRL-L should open the log window.
The jsl function ShowLog() should open the log; put it near the front of your script.
The main thing that will be different when you use the bat file is probably what JMP sees for the current directory. My guess about the dialog is JMP needs to prompt for something it can't find, but the prompt is being covered up by another window which is inactive because of the modal window it is hiding. Maybe not; normally clicking any window brings the modal dialog to the front.
pictures may help. Knowing if task manager says 0% or 100% CPU might help.
Craige