For now my little cheat is working (as did yours), so I moved this annoyance to the backburner. I'm getting interesting blitting behavior, which is to say that all blitting methods work sometimes, and all fail others (work on simple demos, fail on stress-test ones). Alas, it is also in the backburner.
So I'm back with the AWTGLRenderer, where I'm getting StackOverflowExceptions. Logger.log("AWTDisplayList.switchBuffers(): count: "+count +", Is vl[1] null? "+(vl[1]==null)) prints AWTDisplayList.switchBuffers(): count: 346, Is vl[1] null? True. And for more detail, execute prints the following block of commands and, when finished calling FrameBuffer.display() my test program prints "Rendered once." AWTDisplayList.vl[0] and vl[1] have both shown themselves to be null.
execute(int, object[]): Parameters null? False Init? TrueMODE_CLEAR: 2
execute(int, object[]): Parameters null? False Init? TrueMODE_BLIT_TEXTURE: 4
execute(int, object[]): Parameters null? False Init? TrueMODE_SET_FRUSTUM: 0
execute(int, object[]): Parameters null? False Init? TrueMODE_REINIT: 23
execute(int, object[]): Parameters null? False Init? TrueMODE_GRAB_SCREEN: 6
execute(int, object[]): Parameters null? True Init? TrueMODE_SWAP_BUFFERS: 1
AWTDisplayList.switchBuffers(): count: 346, Is vl[1] null? True
Canvas.switchList() completing.
Rendered once.