If you need setInternal or setTimeout you'll still need to ensure that async call is awaited somehow, say by awaiting a promise at the end of the action that isn't resolved until these mutations have finished
The big idea is that all the work of an action should be done before it finishes; you can use to make that happen (recommended) or you can do it the old way with callbacks