Thanks @jvennix-r7 . The dalvikvm command is a bit of a red herring as it starts a whole new dalvik instance, which is only useful to run the java meterpreter as root (without access to the android apis currently).

Within the app sandbox you can't install or launch an apk without dropping a root exploit first, so it's best to call DexClassLoader to load the java meterpreter within the sandbox. I haven't had any luck with getClass().forName('dalvik.system.DexClassLoader').getConstructors() but if I remember correctly there should be nothing stopping the javascript exploit from calling Runtime.load('dalvikstage.so'), where dalvikstager.so uses JNI to call DexClassLoader. Thoughts?