1) in Some sort of lobby, it will likely be the host setting the standard for levels of participation.
The host could set some sort of name for the room containing an indication of the level of play by the host.
Peers can then select to join or not.
2) Peers/opponents can only join rooms once they are connected to the signalling server.
You could however, create a special/private room name, and convey the room name to other potential participants, which after connecting to the signal server, they join. When you use a mysql DB you have a lot more freedom, but users would still need to be logged in to to the signal server to join a room.
To fetch info from the database, they should know there is a request for them, not the easiest thing, you could do something with email requests. Or have the users poll the database at an interval looking for requests.
There are some options for construct 2 to get info from the URL calling the application/game, you could process the room name in there, and use that to join a room once connected to the signaling server.
3) chrome, firefox and nodejs support webRTC connections. I am not sure about the cordova webRTC plugin, I have not tested this.