How do it work inside `myFunction1` which is invoked by `myFunction`? Does `myFunction1` needs to be async as well?

No, it can be any pure function or IO. Both will get interrupted.