You need to use 2 layers for that dedicated to this mechanism.
When a GPI is triggered, it put your scene on layer 4 (in my example). If layer 5 is free, contestant is the first to buzz -> Scene move on layer 5; else, if layer is not free, scene don't go online.
Dim MyFB as xpOutPutFrameBuffer
Engine.GetOutputFramebuffer(0, MyFB)
Dim MyScene as xpscene
if MyFb.GetSceneOnLayer(5, MyScene) then
'A scene is already on layer 5
Self.SetOffline()
Else
MyFB.moveLayer(4,5)
end if#XPression