How do you set up a story progression system with things that happen subsequently or in specific moments?

Another thing to remember is to try and drive as much of the content of your game from data, not from code.

ScriptableObjects are an excellent way to author complex structured data for just about any game.

Here’s more on SOs:

ScriptableObject usage in RPGs:

Usage as a shared common data container: