I would just implement a fatigue status that gets triggered at important story moments or when companions have something to share to basically tell the player they need to go back to camp. Then have fatigue start a timer that changes to exhausted when it's done, where exhausted would carry some minor debuff. When in a dangerous area or a dungeon have the "go to camp" button instead start a long rest with a chance for interruption by enemies (have the screen go black for a few secs just like a short rest, then either fade in to combat or a successful long rest). Finally put a minimum 1 short rest before going to camp again and a max of 3 short rests. Should structure and limit resting while preventing people from missing out on camp interactions.