Always On reaction in specific scenario I need to upgrade my Sharepoint2013 Farm, and the SQL2012 servers are in AlwaysOn mode.

I was wondering if I could use Always On in the following catastrophic scenario:


Take a VM snapshot of Sharepoint Web Front End servers;
Shut down SQL#2;
Upgrade Sharepoint Farm (we are 1 SP and 27 CUs short);
Catastrophic failure during upgrade or upgrade fails somehow;
Shut down SQL#1;
Shut down Sharepoint farm;
Power on SQL#2 (so AO listener is now pointed here);
Restore Sharepoint VMs;


Questions:


Am I all back to normal as if upgrade never happened at this point? Would this really work?
Now, if I power on SQL#1 at this point, will #2 resume Always On on #1 properly, or will I get some sort of desynchronised alerts? Or, in the worst that could happen, will SQl#1 start to override SQl#2?


Thanks
The steps you have should almost work. Assuming that there are database changes in the upgrade (I'm assuming there are because you want to keep SQL #2 offline so it doesn't upgrade) then SQL #2 won't be able to automatically or gracefully become the primary, as there is no quorum it can use. You'll need to force a failover with data loss.

For your questions: 


I can't see why it wouldn't work. SQL #2 doesn't know about the changes on SQL #1, the sharepoint farm doesn't know about the changes, everything should resume as normal
If you power on SQL #1, it will realise that it's not the primary, but it will also be impossible to make it synchronise again. You'll have to drop the database from #1, break the AlwaysOn Availability Group and reseed it again. Because #1 isn't the primary I can't see how it will write data over #2.