While that may be true from a purely logical point of view, it does not follow the precedents set in other parts of the ec2-plugin code, or in the Jenkins code itself for that matter. As an example, look at how instance caps are configured; the default value is zero, and a zero value means 'no cap' because no user would ever legitimately set a cap of zero instances. The same can be said for this timeout: a timeout of zero seconds is non-sensical, so that's a reasonable value to use for 'no timeout', following the example of other code in the plugin.