So, inspired by your solution, I came up with a little dirty trick in my mouse-up event:
m_ParentView3DWidget->getForegroundRenderer()->SetPreserveDepthBuffer( true );
m_ParentView3DWidget->getRenderer()->Render();
[PICKING CODE]
m_ParentView3DWidget->getForegroundRenderer()->SetPreserveDepthBuffer( false );
m_ParentView3DWidget->getRenderer()->Render();
So, I believe the change to the GetZ method proposed by me can be reverted to restore it’s previous performance.