This is an entirely fascinating question; and thank you for asking it. Apologies for the delay in replying; it's been a busy few weeks!
The core of the question is precisely summarised here:
What we've essentially done with AoA is to bridge the gap between local and global services.
Our cloud server infrastructure is split across different datacenters in different parts of the world. However, if we relied on individual players' connectivity to these potentially-remote datacenters, we'd be sunk. As you rightly say, there's a universe of difference between a <40ms and a >200ms ping.
What we do is use the Azure Traffic manager to connect each individual player to their closest/fastest datacenter, regardless of where the 'authoritative' server(s) are located. We then bridge, via a custom-built routing layer, your particular connection over the dedicated dark fibre networks that connect these datacenters together. You are never talking directly to the game server itself - your client only talks to the nearest/fastest datacenter "routing layer" that is nearest to you - and then your websocket traffic is routed (by us) to where it actually needs to be at the server/cluster level, via the dedicated dark fiber infrastructure that links all these datacenters together.
So, in essence, your slowest connection is the one between your client and the nearest/fastest datacenter for your individual situation. We then route the traffic globally, using the underlying infratructure that links these datacenters together themselves (for eg replication etc).
Answering the follow-up questions individually...
It's a difficult question to answer, because the answer depends not only on where the fundamental point-of-origin traffic is coming from, but also depends on the performance and availability of the datacenters themselves.
For example, the central US datacenter is basically a write-off at this moment in time. Even if you can get a VM spooled up on a box there (which is unlikely!) the response time is terribad - and the compute time is really, really expensive.
On the other hand, the Azure East Coast US datacenter(s) are awesome, and have been for many years. We also run a few of our own dedicated server racks around the place (London Docklands and Tampa, FL) for more specific uses (mostly analytical shizzle).
So there's a lot of things to consider. When we run the monthly playtests, we broadly run out of the East US, with some spillover into either Dublin/Amsterdam or West Coast US, as that's the most performant for us. ymmv.
There'll certainly be an access point (routing layer) in each datacenter; regardless of where the "in anger" servers reside.
That's precisely what we're trying to avoid. Fundamentally, we don't have control over the latency between your client and the nearest/fastest datacenter to you. We have a fairly guaranteed level of connectivity/bandwidth/responsiveness within the MS dark fibers that connect the datacenters themselves. I will, absolutely, say that if you're trying to play AoA over an AT&T LTE wireless connection, you're going to be very disappointed. The final mile is always the hardest
However, we're all about performance. We've kinda rewritten the TCP/IP stack to work like UDP over websockets - with reusable custom headers; simply so we can optimise Nagel and force our packets to NOT fragment. Whatever we can stuff in a single packet that is as close to 1024 bytes that we can get, we do!
In our world, at 50k concurrent players in the same battle, a single extra bit (bit, not byte!) in the ship position message packet explodes to an additional 9MB/s at the server bandwidth end.
As mentioned, we use a custom routing layer that we call Gaia, that essentially runs the high-throughput/low-latency stuff between the access points and the actual Dark Matter Engine server clusters. There's a further layer a little deeper down called Shango (named after the Orisha manifestation of 'distant thunder') which essentially looks after the lower-throughput/higher-latency events, such as distant explosions etc: stuff you need to know, but don't need to know at the millisecond level.
Managing this all is Shub-Niggurath, a very serious piece of Interest Management (IM) software that we custom wrote using all sorts of crazy mathematics on the imaginary number line. It makes no sense to anyone except the multi-dimensional beings who reside at the bottom of the Mandelbrot set. Shub-Niggurath considers everything from your particular player PoV and makes very, very highly-optimized decisions about what you (as a player) need to know, and when you need to know it, based on everything that's happening in the universe.
It's an utter madness of queue-management to 7 decimal points - where the first three decimals are already at the millisecond level. Our unit of time is called a hypertick, and is roughly equivalent to 3.6 nanoseconds. Which is really &^%$ing insane.
Hope that helps a bit; but please do feel free to ask follow-ups!