I also used hurl.it to manually POST the autodiscover request and got the same results. So I know that the server is configured properly.

However, when I attempt to setup the EAS on the iPhone (iOS 5.1.1), I enter my email address, then example.com as my domain, mcarter as username and my password. Press next, then it prompts for the server name. If I enter the server name: eas.example.com, it works fine. I can send and receive email just fine, and email is pushed immediately.

So ActiveSync is working. Just Autodiscover is not (at least on the iPhone).

P.S. I also configured my iPhone to go through Fiddler on my PC. I was able to see the Autodiscover process, and the server does send the proper response, but for some reason, it's not reading the URL in the Xml response.

When I do the same thing using Office 365, it eventually gets the the Autodiscover.xml but it's also redirecting through a bunch of servers, so not sure if the iPhone is looking at the redirect headers or the actual XML.

The problem is that the apple devices are objecting to the namespace qualifiers on the root document.
The device seems to parse only the first namespace (or assumes that only one namespace is supplied).