I came here with pretty much the exact same question.
In my case I want the NPC-s to continue doing their stuff in various rooms while the player is not necessarily there. So the option of completely destroying the previous room and loading a brand new one is not really on my table.
Probably option #1 is also a good-enough approach for my small game, but I'm wondering what if my game world was too big and detailed for this approach to be performant enough? How would one solve this problem in a more optimal way?
It seems one would need to have some sort of separate system for processing activities that happen in hidden rooms. Might be achievable if these are only a few of these things that need to happen in hidden rooms. Looks pretty problematic though if one would want to do anything more complex e.g. involving physics.