I use GLEventListener but I explicitly call canvas.display() and it works reliably and fast. However, my frame rate is more stable since I use both JME 2.0 & JOGL. Maybe you should watch the source code of JME and mine too, I wrote a replacement of StandardGame because it didn't work fine with JOGL.
I've noticed this, and that's why it's troubling to me. In my old applications I had stable rates with JOGL too. I just don't what I did that changed things, and I was hoping someone could point out a general attack plan to track down the problem.
I use active rendering very much like this. Unfortunately I've discovered artifacts when using it on Mac OS X. When frame rates are low (< 20), other windows can cause artifacts in the java frame (it resemebles double-buffering conflicts).