According to this Stack Overflow Q & A, the VM Periodic task is not a Tomcat thread, but a VM thread that is primarily used for timing events for systems that don't have native timer interrupt support.
http://stackoverflow.com/questions/5258948/what-is-the-vm-periodic-task-thread
Based just on that, this thread shouldn't be stopping Tomcat from exiting.
The only thing that jumps out to me with this trace are the hosts of non-daemon GC threads. These, also, are not tomcat threads but the VM threads, so I still can't really fathom why tomcat wouldn't exit.
I'm becoming more and more convinced that the problem is in the commons-daemon service wrapper that we use to launch tomcat as a service.