Surfaces only cause damage because the party is stupid enough to walk into them. This is something they need to fix anyway. Any surface you walk into that injures you SHOULD be a trap, which is a legit form of damage that shouldn't lower relationship points.
And why would such a system have to consider different classes? Keep it simple stupid.
If total party HP and spell slots is greater than 75%, Resting is locked.
If 25-74%, Short Rest is unlocked.
If less than 25% HP regardless of spell slots used, Long Rest is unlocked.
If approaching serious encounter, and less than 75%, Long Rest is unlocked and party members advise using it before continuing. This only happens the first time you approach the encounter. Use the Long Rest and then back away from the encounter and that's on you.
Example: Astarion, SH, Lae, Gale. Total HP for whole party is max 50. Total spell slots is maybe 10. They fight. Lose 10 HP between them. Used 4 spell slots between them. No rest unlocked because only 20% HP lost altogether and 40% spell slots. A bit more HP lost and Short Rest would be unlocked. They fight again. 20 HP lost and 3 more spell slots. Short Rest unlocked. Gale can now use Arcane Recovery, and party can use Hit Dice to gain HP back. Lae gets Action Surge and Second Wind again. SH gets Channel Divinity back. They fight and lose 40 HP. Long rest unlocked.
They fight the next day. Bam! Tough fight against gnolls. They have 25 HP left between them. Short Rest unlocked. They don't use it. They approach the Gith patrol. SH stops them. "I have a bad feeling about this. We should maybe rest before going there." Long Rest unlocks.