AWS may not hold your hand as much as Azure, but everything it does is far more polished and performs far better. All of the features you mention for Azure AWS has and has had for far longer, except for direct Visual Studio publishing.
Auto scaling in AWS is far more powerful than Azure. You can scale based on several different metrics, not just CPU load. It is not "just there" like in Azure in that you must explicitly configure it, but it is worth it for the massively increased control. You can easily replace instances in an AWS load balancer with completely unrelated ones, something that is impossible in Azure
Staged publishing also exists in AWS as Elastic Beanstalk, which is more comparable to the standard PAAS Azure offering. You can switch websites instantly between any of your up to 200 environments, not just two (live and stage) like in Azure. Again, it doesn't hold your hand, but it is far more powerful and flexible.
MSSQL is an absolute joke in Azure which is sad given that it is run by MS. The performance is abysmal and it is Azure's cut down version of SQL, not the same as a real server. AWS lets you run your own on EC2, or use their managed RDS service. RDS offers point in time restores up to 35 days at any point even on their cheapest MSSQL express based offerings. Azure requires you to get their "premium" SQL at an inflated price for that level of backup. RDS is also still a full server without any missing functionally like SQL Azure. Security of SQL Azure is also non-existent. It does IP filtering at the DB level, no firewall. The next slammer type worm will infect every Azure DB including yours.
On top of all that performance is not even comparable between the two services. Azure purposefully compares their offerings to deprecated AWS instances because current AWS instances blow them out of the water in both price/performance and raw performance. I/O performance is basically non-existent in Azure, their managed storage system is pathetically slow.
Azure is designed to make it easy for a developer who has zero infrastructure and networking knowledge to get his code out into the world running on a shitty system. This is a very bad thing. A developer with even a tiny bit of infrastructure knowledge can see how bad Azure is.