We use AWS, though it's worth noting that our entire infrastructure is Linux-based, save for one or two MS SQL RDS instances.
Honestly I've been utterly blown away by my experience with AWS. We've got a bunch of Tomcat web services running in AutoScaling Groups, with the whole thing being orchestrated by Ansible and Packer.
I'm using Packer with Ansible playbooks to automate building Amazon Machine Images, which are then passed to Ansible Tower, which creates all the infrastructure around the services and creates Launch Configurations for each AMI. With a single command, I'm able to go from nothing to 10+ AutoScaling Groups, Route53 DNS, full VPC configuration with multiple priv/pub subnets, and then some. Whenever we do a new release, we build a new AMI, replace that service's Launch Configuration, and systematically drain connections and terminate existing instances, having the ASG automatically repopulate with instances built from the new AMI. Literally a zero-downtime release.
And the best part is, I know we're barely scraping at the surface of what AWS is capable of.
In terms of latency, we're using Ireland (eu-west-1), which averages around 200-400ms. It's not ideal, but you can get Amazon Direct Connect through Layer 3 if you're willing to fork out the cash for a connection to the Dark Fibre Africa loop.