IMHO this is far too many parameters. Could we create a Builder for FailOnTimeout and get rid of all of these constructors? See Effective Java, Second Edition, Item 2.

I personally like the style where there is a private constructor that takes in an instance of the Builder.