In both safaridriver and webkit's driver, none of the checks in steps 5-8 (including "post-navigation checks") are being done at all. This needs to happen in the WebKit side since it depends on examining the document loader / main resource response.
Forgot the link:
Practically speaking, we should be not running the page load timeout if this appears to be a same-document navigation (i.e., to a fragment). We also need to adjust the response if the navigation failed for some reason (handled by the "post-navigation checks" algorithm).
This command already does most steps of "wait for navigation to complete", though I haven't audited the code against the spec to see if we are missing any steps. It's likely that W3C test coverage is not good for the finer points of the algorithm.