Isn't GC pause good enough reason for anything of this kind? I'm perhaps not up to date in the latest JVM GC performance profiles, but if shaving even a few usec is important then I'd think avoiding it altogether is paramount.
Having said that, as far as I know (I haven't worked in Java in about a year and a half, so I don't know how this is now), garbage collection is pretty fast nowadays. It may also be possible to speed up if using something like Excelsior JET, though I've never used it, so may be wrong on that.
I'd personally be interested in looking at using a C++/LuaJIT hybrid for something like this though - the bulk of the code would be in Lua with common tasks that require very high performance and don't need to be too dynamic being done in C++.