One solution :
When a table is full, the table remains in the lobby (with all places marked as full).
If EVERYONE in the table accepts, then the game is started, and the table is removed from the lobby.
If any player declines, then the table remains in the lobby, with the place made available again.
This would also involve a "code change" in the lobby mechanics, to ensure that if a player refuses to start a game, they cannot cannot rejoin the same game later on (otherwise a table could get stuck in an infinite loop).
When a table is full, the table remains in the lobby (with all places marked as full).
If EVERYONE in the table accepts, then the game is started, and the table is removed from the lobby.
If any player declines, then the table remains in the lobby, with the place made available again.
This would also involve a "code change" in the lobby mechanics, to ensure that if a player refuses to start a game, they cannot cannot rejoin the same game later on (otherwise a table could get stuck in an infinite loop).