VOILA! I have been having the same problem, and I think I've finally come upon a solution. I discovered this after doing some testing trying to launch both java and native windows processes from autoexnt.bat. The Windows process I tested (sleep.exe) *did not* get terminated after logging on and off a console session. So I dug a little deeper and found the magical -Xrs JVM option. This option apparently keeps Java from responding to certain signals from the OS. It fixed my problem, java.exe stays in memory forever!
So, try setting the -Xrs JVM option for your java process, I think it will work.
You can read more about this option at
http://java.sun.com/j2se/1.3/docs/tooldocs/win32/java.html