Assert conditions consistently

Always assert conditions inside a runWithOptionalWait block so that exceptions
are reported showing the assertion that failed, rather than a generic Geb wait
timeout error.

Also fixed a couple of bugs where we weren't returning true from inside the
block, so Geb would time out even though the condition was true.