Lobbies in my opinion are actually easy. This is the way I have thought it could be done.

You have a central web server that lists all active games. You can join any active game at which point you are given the session_name and IP and you session_connect to it.

Now, if you actually start a game, you would start your server and connect to the webserver and upload your info such as session name, IP, maximum number of players, etc. Once the webserver has that info, the server just waits and perform mutual updates to make sure that if a player joins the 3DGS server, teh webserver gets that knowledge.

Once the game is full, the webserver would know (since it's been "ticking" off clients as it joins) but the 3DGS server could also send a "game full" message at which point no one else is allowed in and the game starts.

When the game ends, the 3DGS server sends the game results back to the web server which can then keep a leaderboard or maybe reopen the game up.

Basically, since the web-to-3dgs server communication is controlled and sporadic and totally text (or number) based, this is much easier than custom content which is not controlled and continuous.