How does ICP canister handle asynchronous calls and event queue?

I think this is relevant as well.

If no inter-canister call then everything is fine since the canister state won’t change when program is running. But the atomicity will be broken when inter-canister call happens and still await.

So in my case it should be okay. But getting involved with inter-canister call will be another story.