2)One disadvantage of schedules is if you’re waiting for a specific NPC. Many single-player RPG’s handle this by letting you sleep and/or wait until a specified hour. What about co-op play? How would a rest function work if two players disagreed on wanting to rest OR couldn’t, because one was in combat?
I can think of an easier way to solve this problem. Larian can build the NPC schedules in a way that the NPC will always be somewhere at any given time.
For example: NPC Paul is a vendor that works on the market from 6AM to 11AM, when he goes to his house (or to a tavern) to lunch. At 13PM he goes back to his store in the market and stay there until 6PM, when he closes his shop and go to the tavern. There he stays until 22PM and then he goes to his house to sleep until 6AM from the next day and so, start again his schedule.
Doing this way, you wont need to "wait" for a specific time to meet a NPC, you just need to know where he is at the given time.I think this could be really fun, more than just "sleep" to pass time. Plus, this "system" opens room for a multitude of different NPC reactions, depending on the situation that you encounter him.