On my Nvidia machine there was a massive lag exitingthe overview effect. Hotspot showed it as being in QOpenGLVertexArrayObjectPrivate::destroy. In this method we clean up some shared objects used in the context when the context closes.
In order to do this we need the context to be current. If it is not current Qt currently internally creates a temporary offscreen surface.
To fix this we need to have our context current during destruction, which includes changing order so it is destroyed before the surface.