Coroutine stored in a variable class seperated from the Mono Behavior

That sounds like a record number of buzzwords to put into a single project. Are you sure that’s a good idea? Nothing about making such a system requires any of that noise. You may wish to consider just getting something working first before going crazy with the Resume-Driven Development.

Unity doesn’t “expect” anything about coroutines.

Coroutines in a nutshell:

https://discussions.unity.com/t/825667/6

https://discussions.unity.com/t/749264/9

Splitting up larger tasks in coroutines:

https://discussions.unity.com/t/840656/2

Coroutines are NOT always an appropriate solution: know when to use them!

https://discussions.unity.com/t/857304/4

https://discussions.unity.com/t/849607/7