A number of steps have a last step which may trigger some async
operation (e.g. reopen a menu, close a modal, ...).
This async operation can span over the cleanup of the browser, in
which case its callback will try running in a seriously broken state.
It's simpler to just assume that the last step's side-effects should
not matter to the test's success and interpret it as a "wait" (used
only for its trigger to wait until a proper end-state).
There was a question of whether we should ignore all final actions,
all non-function actions, or all implicit (default) actions. The
latter seems the least disruptive as hopefully developers having
provided a `run` in the final action have a good use case for it.