Async/await case for UI tap event

in view did load
I’d like write the following code.

let (view1, tapButton1) = Self.makeView1()
let (view2, tapButton2) = Self.makeView2()
let (view3, tapButton3) = Self.makeView3()
Task {
  await showAnimation(view: view1)
  await userTapsNextButton(tapButton1)
  await hideAnimation(view: view1)
  await showAnimation(view: view2)
  await userTapsNextButton(tapButton2)
  await hideAnimation(view: view2)
  await showAnimation(view: view3)
  await userTapsNextButton(tapButton3)
  await hideAnimation(view: view3)


I use a checkedContinuation to wait the next button click event.
but I found if all of await methods are done. then dismissing the view controller can trigger the deinit function. but if user dismiss the view controller in halfway. seems task cant be cancelled. even I called task.cancel() in viewDidDisappear.

I want to know whether the async/await is suitable for this case?

I also know checkedContinuation must call resume method once. But I just pend it