This diff looks like it reverses the meaning.  And when is `build_wait_timeout` less than zero?  Isn't the real test whether it *equals* zero?