Stop asynchronous dispatching when a new controller is started

This is #357, but it’s not checking for the controller name, but if it’s the same controller instance.

If a before action for `some_controller#show` returns a promise, routing to `some_controller#show` (with different params for forceStartup) or `some_controller#index` should also stop the initial routing even if the name is the same.