Минутка истории. :)
waitUntil/waitWhile были сделаны в те доисторические времена, когда селенид сам по себе ещё ничего не ждал. Т.е. это были явные ожидания .
Потом мы встроили автоматические ожидания во все методы типа $.should, и waitUntil стал особо не нужен. Единственное, что он позволяет - это задать большой тайм-аут для одного конкретного условия.