In case it helps anybody, I figured I'd explain how I do rests in my town-to-dungeon campaign, The Delve. Short rests are 8 hours and you can't take them in the dungeon due to population density of threats. Long rests are 1 week and must be done in a town. The campaign is based on a week-to-week cycle of one-day expeditions. The dungeon appears for only 24 hours at a time in this realm, so too much short resting means you cut into your delve time (as does travel time). Thus, managing your time is very important. We're currently preparing for the 18th expedition to The Delve with the character having plunged as deep as the entrance to the Final Level.
Anyway, random encounters occur on an 18+ on a d20. The die is modified by the number of hours you are traveling or resting e.g. an hour rest is 1d20+8, so you have a 55% chance to have a random encounter during that rest. This can be mitigated by setting up your camp well, a DC 15 Wisdom (Survival) group check success in which means I roll twice and the players can choose which result they want. (Sometimes they want an encounter!) An encounter does not interrupt gaining the benefits of a short rest.
The outcome in play is that the PCs tend to want to take short rests only when they are seriously depleted of resources or if one or more PCs is ready to level up. (You can level up only after a rest in this game.) I think that's a pretty good outcome.
Now, there's the important bit in my view: I probably won't have it set up this way in the next campaign. Why? Because I think we should use the rules to support the play experience we want to achieve. This works well for this set up. It might not work in another type of campaign. So if the rules say rests aren't interrupted unless the fight's at least an hour long, then change them if you're going for another play experience. Just be sure it's actually contributing to your vision of the game and is fun for everyone. If you've been doing it that way because it's just the way you've always handled it, maybe take a harder look at it and see if another way might better support what you're trying to do.