Ozy and I are the ones playing - and he is completely correct. Direct Connection happens very rarely (even with port 1944 open on my router. Please realize that both of us have had extensive systems backgrounds both on Wall Street and in corporate America, so we're reasonably capable of working through technical issues.
We wind up spending quite a bit of time trying to figure out if there are certain conditions that need to be met (apart from the open port) in order to establish a direct connection (because the lobby system is so incredibly bad). Ultimately, we give up and try to play.
Let me describe how the play goes - we each log into the lobby system. This takes about 60 or so seconds for the connection to come through (Ozy will tell me on the phone he's on the lobby, but I don't see him appear for some time). I, as host, click 'host' and then we wait another 60-120 seconds while the program does whatever it does. When we get a direct connection, that typically pops up within 30 seconds. Lobby connection will take closer to 120 seconds (we have timed it).
After selecting the scenario, I get on the strategic screen (we are playing a campaign) within a few seconds. Ozy will wait 2-3 minutes while the program sends whatever data to him. Once we both are on the strat screen, we proceed and the next and the program takes 2-3 minutes to transfer data. After choosing forces, we wait another 2-3 minutes (again, we've timed all these pauses) for the data exchange to take place.
As host, I can set up easily, but Ozy will fight a long lag while dragging/dropping. Note - I have had Ozy host a few times and I can say that I experience the same drag/drop issue (click on a unit, try to drag but nothing happens for a few seconds, then it will move, then it drops in the wrong place, etc). Very frustrating, but we learn that this is part of the 'overhead' that we have in playing this game.
The battles typically run okay - no issues with orders or any other aspect of the game. There are times, of course, where the game freezes entirely (about 1 time in 3). What we do to make sure we don't have to start this whole process again is that the person who is not hosting will call for a truce early in the battle, and if there is a freeze, typically we find the hosting PC - although frozen - can accept the truce and the game result is saved on the host computer.
As you can see, we spend a lot of time treating and dealing with the symptoms of a poorly executing product. We live on opposite sides of the country so this is a time when we get to enjoy each others' company, even for a short while, but much of the time is spent in a frustration, which you can sense from Ozy's posts here.