When a user connects to the dashboard, the UI-Control nodes output a connect event. Similarly, when a dashboard tab is closed, they send a close event. I believe messages sent to the front end from your flow, if they have a
socketid property, will only be sent to that specific socket.
You could therefore build a function, which logs all connected
socketid's and removes them if a close event is detected. When a new ID is connected, you can send a message to all other sessions triggering a popup, or try push them onto a 'locked' tab with no interaction possible. When the 'live' user disconnects, the last connected one can be re-enabled.
You could also use a switch node, or custom function to filter data being returned from the UI to the flow to only listen to things from the most recently connected