These “friendly states” as you call them don’t exist as far as I know. Home Assistant just displays the status differently based on the device class of the binary sensor, but the state of the entity will always be “on” or “off”.
You should still be able to include this in your code if I understood you correctly. If “on” always means “open” and “off” always means close, you can just have some “if state is equal to off then text is closed, else if it is equal to on the text is open, else the text is the state”
Otherwise you could try to incorporate the device class and then decide what the text should be based on the device class.
For telegram, you can add logic to check and transform the state, like below:
message: >
{% if (states.switch.garage_door_1.state == "off") %}Garage 1 is closed. {% else %}Garage 1 is open. {% endif %}
{% if (states.switch.garage_door_2.state == "off") %}Garage 2 is closed. {% else %}Garage 2 is open. {% endif %}
This comes straight out of my config and works.
Like you, I would an easier way to alias states so they would be portable across interfaces. Telegram is working for me, but the state on the homehabit app is still confusing.