Multiplayer "waiting to join" issue...
(Edit: the following is based on our current network, location, and systems we use. This in no way says it is the solution, but does show how and why an issue appeared.)
We have run a large set of tests on this issue with three machines- an HP desktop, Acer laptop, and a Dell laptop- all behind a router on a network. We built a multiplayer game and distributed on all three systems. If the HP desktop hosted, both laptops connected and all three could play no problem. If the Acer laptop hosted, only the Dell connected but the HP desktop got the "waiting to join" message. If the Dell hosted, the Acer and HP desktop both got the "waiting to join" message. Translation? Only the faster machine can properly host a multiplayer game without this "waiting to join" coming up. And to further assist in that conclusion, we added a fourth system- a virtual system running XP. The results were the same- if the HP hosted, all could play. Once the slowest machine hosted, everyone trying to connect got the "waiting to join" message.
So, to further our tests, we took the Acer outside of the router on the Web and had it connect in. Yes, we had to port forward. The results with three systems inside and one outside were exactly the same. We rotated the machine on the outside and all results were the same. If the fastest hosted, all was good. If a slower machine hosted, machines slower than the host could connect, but the faster systems got the "waiting to join" message.
This particular issue has existed back prior to FPSC's creation in other software. It existed back in the era of multiplay in games like Dark Forces II, Rainbow Six (ex: Covert Ops, Urban Ops, etc) where we had not only TCP, but IPX as well. In these games, it was a similar thing- the faster computer had to host, or else the game would lag, or players on faster machine would "jump/move" randomly on the screen.
I've seen the sources MP code for FPSC, and I have seen code from another game for it's multiplayer. Although the code for FPSC could use a bit of work/rewrite, it does work as it should. If people get this message and can't connect, then they can try a few things to track the issue. Check network connections, try hosting on a faster computer. It may not be an issue for some, but our data showed how and why the "waiting to join" message appears.
As far as connecting without having to port forward in the router, you would need to use a port that is already open and the game would have to contain an option to allow you to change the port to use. Until that option becomes available, then you will need to port forward on routers. Basic Networking 101.

Twitter: @NFoxMedia