Unfortunately, the Ecobee API doesn't discriminate - it allows changes from ANYWHERE, without identifying where they came from. Changes made all look the same, whether made with:
- the Ecobee Mobile App,
- the Ecobee Web App,
- Ecobee Suite on both SmartThings & Hubitat, from ANY mobile/web device
- the native platform integration for Ecobee (or any other integration)
- Apple Homekit (direct)
- Alexa native Ecobee Skill
- Google Home
- the physical thermostat
Thus there is no way to determine whether a change should be accepted or ignored. The only way to accomplish what you ask is to use a pass code to lock down the thermostat. I do this for my summer rental property, allowing renters only to adjust the temperature between a limited range.
As for the second scenario, unfortunately (again) Applications can't generate/maintain a User Interface other than the preferences page(s), and the Hubitat Dashboard only allows for device attributes to be displayed.
I totally agree that there needs to be a better way to dynamically adjust at least some of the parameters for Thermal Comfort - like adjusting for "exercise time" vs. "typing time". But I haven't been able to come up with a way to do that. I thought about using groups of "virtual switches", but the downside is that it would take 10 just to adjust Metabolic Rate, with the upside that you could easily integrate into Alexa/Google - "Alexa, turn on Housecleaning Mode," for example. I guess I could use Virtual Dimmers, but that would require the user to have some idea of what the appropriate value would be - "Alexa set Metabolic Rate to Two point Seven". So I don't think that is practical either.
I'm totally open to creating solutions for both of these, but as I say: I just don't know how to do what you want in a practical manner. If you have specific suggestions (or better yet, examples), I'd love to see them...