Instantiating a Coroutine?

I’m super tired of trying to do this and with no avail.
What I simply need to do is make a timer that persist through scenes, and I’m super stuck, I’ve tried so many things I can’t remember them all.
I have a GameManager that persist through scenes, so the script has to run there, and when I click or activate something that has a timer, a new instance of the “Timer” appears, that would be a coroutine with references to the given TimeToFinish and the GameObject that created it (so i can do its action when it finishes).
The problem is I can’t make static coroutines, and I can’t send parameters to a method that isn’t static, so what can I do? I ended up in a circle of trying something, failing, trying something different, failing again.

Greetings, If I understand correctly, what needs to happen is:

  1. Player puts a bun in the oven in scene 1 (for example). The bun takes 15 min to cook.
  2. Oven timer starts.
  3. Player goes to scene 2 or 3 or 4 and does really cool stuff.
  4. In the current scene(2, 3 or wherever), the player is notified that the bun in the oven of scene 1 is ready.

Is that the gist of it? If it is, something else to consider is; “does the oven state need to be saved between sessions?” Because that would change how you do this.

I know it sucks to have a question answered by a question but, It will help if I and others have a clearer and complete understanding of the end goal.

I was able to make this work, turns out I was making it super complicated and all I had to do was spawn a prefab in GameManager for each timer, i didn’t need statics, and now fully understand how they work.
Thanks Hellium for your answers I only wish I knew how to use this site before so I could see your answer. Came here to close this thread and saw what I had just tested.