GMS 2 The pitfalls of NPC paths/cutscenes.

So I'm at the point where I'm going to implement cutscenes and NPC's into my (top down 2d rpg) game.
I've drawn all the sprites, have a good idea of who needs to do what,...

So I'm starting this (quite new) challenge.

I thought it would be a great idea to ask around a bit. I have a few systems in my game now,
that I actually started over from scratch like 3 or 4 times now. The reason for starting over each time was, well...
.... amateuristic coding. This is a learning process after all. I've learned quite a lot and i'm quite happy the ways things are going
for most of the things I've already programmed into my game.

So now the NPC's... Yup I can see it coming: I'm gonna mess up. Which is fine. Then I'm gonna mess up some more.
And then some more, and then just when I think I got it, I'll lose all hope and start over again, before finally finding my vibe
and having something far more robust (and probably still not at all professional).

I'm fine with that, I get that that's an inevitable part of game design.

But I do think, realizing this will have many pitfalls, it would be of great benefit to ask around:
What are the pitfalls of NPC design?

What I want to do, is give each NPC of my game either 1 or 2 "paths". They are sort of set, they won't move around with
a mind of their own. All they do is neatly follow a predefined path. They can be stopped, by blocking them and talking to them,
but aside that, it's just simple predefined paths.

That doesn't SEEM too hard but it already raises a ton of questions, questions of which it's obvious many people before me have
already found great answers to. So: "Ask" I tell myself.

It's stuff like:
- What is a proper way to setup a dialogue system and keep track of large quantities of dialogue? Txt files? Objects? Scripts?
- How to organize that text, knowing when to trigger what? ds_grids? lists?....
- How to keep track of NPC position when you are outside their room. Again, grids? maps? Or persistent NPC's (turn invisible and non-interactable when player is not in the proper room)
(that last bit... The only things persistent in my game are stuff like the player, the camera, pause system,... Having a bunch of NPC's that need to be reset and reloaded as persistent things between saves seems like a BAD idea)
- Cutscenes: I'm not using 2.3 right now. My project was quite unprepared for that update, and I will have to rework quite a lot. I'm sticking to 2.2.5. I am good at animating through code and don't think I need that shiny new sequencer at all.
- Keeping track of story: Since cutscenes will pretty much be "THE" indicator of where the player is in the story, it seems obvious that keeping track of the cutscenes that have already triggered seems like a good idea, so that the world can adjust to those triggers (if needed or demanded by the story)

Like, just some general advice, pitfalls,... Maybe a pointer towards a great tutorial, a marketplace asset,... Something to learn from and pre-emptively reduce the amounts of mistakes I'll make.

Thanks in advance to anyone answering :)