Yes, it's a perfectly valid approach that is used by many different IoT devices.
One I've implemented more than once, bur here is an example that uses WebBluetooth so you don't even need a native client on the phone/laptop (but you do need Chrome)
I use a combination of Belkin/Wemo and other devices that are inexpensive and have had the same issues. My solution was to flash them with Tasmota: https://tasmota.github.io/docs/.
This fixed my issue with them being unresponsive but of course, I broke the vendor cloud connection.
My solution was to use homeassistant: https://www.home-assistant.io/ to manage ...