>1. After a failure when the original active host is restarted, would this automatically restart and update with all transactions from the second instance? Or would I need to manually re-sync.
What storage engine do you use? If you use Innodb, it supports crash recovery.
So if the failure is due to such as O/S crash and power outage then Innodb would performance auto crash recovery.
http://dev.mysql.com/doc/refman/5.0/en/innodb-recovery.html
If you use myisam tables or combination of innodb/myisam then you might observe table corruption.
If its crashed/stopped due to hardware error e.g. disk failure then you would have to rebuilt this host using new snapshot of second instance (of course after replacing faulty disk(s)).
Learn more about innodb crash recovery:
http://dev.mysql.com/doc/refman/5.0/en/innodb-recovery.html
And you should perform replication consistency check:
pt-table-checksum
http://www.percona.com/doc/percona-toolkit/2.1/pt-table-checksum.html
>2. I have read a lot about using this configuration to allow upgrade with no downtime. How would this be done, simply stop the slave on 1, and upgrade the other, then restart the slave?
Read my comments here:
http://forums.mysql.com/read.php?26,563038,563044#msg-563044
>3. How can I configure this to be active-passive where the passive instance can be accessed for reads only.
You can use failover database host for this purpose, direct read queries to the failover host