Originally created by Marcin Erdmann.
If your waitFor closure takes a lot of time or returns truthy value in last evaluation which started just before the timeout has passed then it will incorrectly throw WaitTimeoutException.
Add pass evaluation in this line: https://github.com/geb/geb/blob/master/module/geb-core/src/main/groovy/geb/waiting/Wait.groovy#L123