This process has been extremely problematic for us. Every a fail-over occurs, it takes 10-15 minutes, some times longer for the UI to come back up.
Is there a better way of doing this? Can the fail-over be handled via an F5 or a Netscaler?
The failover process itself takes about 2 minutes to get the services back up, and maybe another minute to get the website responding in all environments where i have tested. The part that takes longer and really hurts end users is almost always in getting your user browser sessions to drop their cached dns entry.
For testing purposes open 3 browser tabs, one to each server directly and one to the dns name of your system. Trigger a failover and just start refreshing the tabs until the member that was formerly down starts loading correctly, should only take about a few minutes. But your vip dns name tab will probably continue to connect to the old instance and it will show all kinds of errors on it. Pinging or doing nslookups against the dns name will usually update to the newly activated server fairly quickly as the Orion dns entry has a short time to live, but your browser usually is still connecting to the old ip because it keeps a separate DNS cache that will ignore TTL. What I found forces the browser to drop the bad cached entry was actually stopping the iis services on the down member, when the browser can't get a response it rechecks dns and finds the new system. To speed up my transitions I ended up building an alert for when the active pool member changes from my primary it runs a powershell command to stops the iis services on my primary and when it fails back I stop them on the secondary. I also ended up writing a powershell script that immediately forces dns name changes on all dns servers instead of waiting for the replication as that could also potentially add delays for users who aren't using the same local DC as the Orion server.
At the time when I worked this all out everything seemed to work but obviously you'll need to do your own testing in your environment to see if this holds true there.