Maybe the time of day should be entirely player controlled? Meaning if the player wants to play at "night" then that means going to your rest menu or whatever and selecting the time of day if the other players agree with it that is (if multiplayer)

In that way if your quest objective requires you to act at a certain time of day you wait/rest until that moment and the time of day is suspended at that time until you choose to move to another time of day.

At least this way you can have night quests without having to wait. NPC schedules would not be such a bother either because NPCs would be where the game says they should be at that time of day. You avoid the problem of wandering npcs although you would still have to lay out sleeping quarters and such things for npcs.