Seems like there could be more immersive ways to deal with the problem.
Depending on the context, some could survive being killed and show up hospitalised some time afterward, delaying your quest, in other cases they might just be replaced by someone else and in other cases, a strong group of enemies from the faction of the dead NPC could promptly track you down and kill you, or if you’re in the quest that the NPC is helping you with, it could be your mutual enemies that kill you because you didn’t have the NPC to assist you. There’s also the possibility to let players skip important parts of the main quest, replacing those parts with something less glamorous, interesting and work intensive, that would still lead to the next part.
In a perfect world, it would be obvious that killing a particular NPC is a bad idea and the consequences would make sense within the story.
Anyway, option 3 isn’t so bad. I hope you have time to make the system seem reasonably flexible though, even if not foolproof.