Engineering isn’t so much about “where do I stick this line?” as it is about “how do I engineer this solution?”
Coroutines in a nutshell:
Splitting up larger tasks in coroutines:
Coroutines are NOT always an appropriate solution: know when to use them!
Our very own Bunny83 has also provided a Coroutine Crash Course:
https://answers.unity.com/questions/1749615/coroutines-ienumerator-not-working-as-expected.html?childToView=1749714#answer-1749714
And then, just for completeness, I use my CallAfterDelay class for delayed action.
See usage notes at bottom below gist code.