With the new Navigation API, you can now show the native spinner + stop button for any asynchronous operation - all you need is a Promise.
@developit This doesn't look like it stays active for the entire length of time. Am I wrong?