I've tried vsync, makes everything run a lot slower overall, doesn't affect the current issue, not currently enabled.
I don't call Display.sleep, and currently use Display.sync(60), though swapping that out for something using Thread.sleep doesn't fix anything.
If I run it on my xp netbook (compared to my windows 7 desktop), I still get some Display.update() lagging in the same situation, but it's at nowhere near the same scale (around 50 ms rather than 1000), and much more consistent.
As far as I know I'm not doing anything like that with GL data. Other than what's in the Sprite, Texture, and TextureLoader classes, the only GL code I call on a regular basis is
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();