The fact that you're not seeing any error message makes me think that the command line string being built to launch tomcat has some subtle error in it, causing the JVM to not launch at all, or abort because it's being given a bogus directive. Usually what I do in these cases is edit the launch script, find the spot where the full command string is executed and add an echo of the same string. That way, when the script launches, I can see the exact command that is being issued and test executing myself without the script.
I don't think you are facing a major issue here, but if you want to ditch the startup parameter driven JMX options, you can always add a quickie startup servlet to your admin WAR that creates and starts a JMXConnectorServer.
Sounds like overkill, but it does give you a bit more flexibility in the configuration details of the listener. For example, by default, the default command line options will result in a listener bound to the local address only, so incoming connections from remotes will fail. On the other hand, if you configure the connector server yourself in a servlet, you can direct the listener to bind to 0.0.0.0.