Setting up the code to cancel a future based on user input can be tricky.
You need to be waiting on the future and monitoring the UI in parallel.
At the least we should be able to guide on the best approach.
Even better would be a "Wait on Future with Cancellation" which takes a notifier or similar to cancel and stop waiting.
Not sure on the best approach to this just yet.