How to determine the time out setting of mirroring?
The best practice is to be 10 seconds or over for timeout because it could trigger a false failure otherwise, the rest depends on your environment and your requirements for disaster recovery and high availability. If you set the number too high, it will take longer for the failover to occur when you do have an issue. The business needs should drive the results, the results should not dictate business needs. 

Microsoft notes on the minimum.

SQL Sailor: Best practices and time outs for mirroring.

MSSQLTips: Greg Robidoux: DB Mirroring

SQL Central Discussion: Time outs for mirroring

To address what would be a good failover time, as I mentioned, it should be driven by your business requirements. Here are a few guides to developing those requirements:

Peak10: Carilyn Booker: DR and HA

Redgate: Joshua Feierman: DR and HA

Brent Ozar: DR and HA