TestSession.result(): Promise<RunResult>
The finished run. Starts it if nothing has yet, and resolves with the same
RunResult the final runEnd event carries — never undefined, which is the whole
reason this is a session rather than a bare event stream.
Awaiting it twice is free: the second call returns the first's result.
Promise<RunResult>