I'm still incredibly curious what exactly is the bottleneck and what I can do to get Jules' seal of approval.
What I did to fix it is instead of attaching an OpenGLContext to my MainContentComponent, just attaching one in the constructor of my boards where all the images are being drawn.
I'm confused because the rest of my components that were being drawn under the one OpenGLContext attached to the MainContentComponent were basically non-factors. It's just a menubar and then a tabbedcomponent with two tabs that each include my board, a textbox, and a viewport with a few labels inside. The diagnostic even showed the most CPU usage being inside of the drawing my pieces, not the textbox, viewport, nor menubar.
The report I last linked showed the drawing eventually boiling down to toEdgeTable() and sanatiseLevels() being the biggest hogs. Now they are using about 1/3-1/4 less CPU than they were before. I don't understand at all.
If you want to test any of this out, [url=https://github.com/thesmartwon/OpenChess/commit/17c2a971c92e6f3a51d1103c508ab957fa88ebb6]this[/url] is the commit with one context attached to the MainContentComponent that lags, and [url=https://github.com/thesmartwon/OpenChess/commit/48962c53a9c41f155affc74d6c7c77d1d8aeac3d]this[/url] is the one that just attaches to the boards that doesn't lag. The second one has the reports included, and I'm picking up and spinning around the piece from about 3 seconds to 10 seconds in all of them.
Of course in most cases this isn't even significant, and I'm just being very picky because this is the component of my application that will be receiving the most use. Is using a background thread for the board by implementing OpenGLRenderer the best thing to do? I'll try that next and then update it in an edit.
Edit: Doing that didn't make a difference, so I reverted back to the way things were before with just attaching each board to its own OpenGLContext. It runs just fine for now! All that's left is the question of why attaching the context to the top-level component lagged so much.