After a click event I need to wait for an elements attribute to change before proceeding further (click event causes certain elements to move out of focus and certain others get
It's a recurring problem of Selenium. I am not sure about a "best" implementation existing. I believe it's largely depending on the situation.
Concerning AJAX-driven changes, I would generally use a waitForElementPresent or a waitForElementNotPresent depending on the changes the AJAX call will make on the page.