Ribis The concept of Room is exactly same as you described, in Among Us. So one person can Create a Room, set settings like: Set max players, allow re-join, etc. And other players can join until the room is full.
Photon manages all the Rooms, and even the Lobby system. Also, it has an option to set userID's as "Friends" so you could find Friends online, etc. But I didn't quite explore the Lobby/Friends system as I use Firebase myself to handle User data etc.
It also has an option for sqlLobby, again, I'm not sure what that is, maybe you'll understand it better.
Here's a portion of Events and Actions of Photon plugin, which should give you a good idea on what all you can do with it:
Oh and I agree, you must avoid sending 'inputs' to manage positions, because, as you said, there are a number of factors that can affect the 'actual' position of the sprite (e.g. framerate differences in collisions, temporary lag, etc). Unless it's a Sliding Puzzle game where nothing can go wrong, it's advisable to use sync exact absolute positions X,Y. It's not really much of data if you think about it. You're sending all in one event. You can look into BinaryData as well to make a large game more memory efficient.
Anyway, this should give you enough information to get started and begin exploring yourself! that's how you'll fill the missing pieces on things that you still don't understand. Start with something simple. Good luck!