This advances asyncIteratorP updating iterationObserver with each successive value. The iterationObserver may only be interested in certain occurrences (updateState, finish, fail), so for convenience, observeIterator feature tests for those methods before calling them.