Failing test for nested loops maintaining state

Because `previousInstance` is overwritten every time `begin` is called, nesting a run loop (either explicitly or via `run`) more than once causes the outer state to get lost and an error to get thrown by the outer runloop's attempt to `flush`.

This PR just includes a failing test.

Proposed resolutions:

(1) Maintaining a stack of instances, instead of `current/previousInstance` properties
(2) Store the `previousInstance` as a reference on the `currentInstance`
(3) Throw an error in `begin` if there is already a `previousInstance`