I have used HA quite a bit and been burned. I think in the choice between graphical "no code" or "low code" and yaml, I choose yaml. But to do imperative logic there is just one useful way: a proper programming language.
This is just like when writing CI scripts for GitHub actions or Azure pipelines: the right amount of yaml (if it must be used at all) is to just invoke a program in some more expressive language than yaml.
Depending on when that was, it might make sense to try it again. I've got 25+ actively used automations and none of them need custom yaml anymore. Things really are continuously improving with every passing year.
I do use the (jinja) value templates in some places though.
This is just like when writing CI scripts for GitHub actions or Azure pipelines: the right amount of yaml (if it must be used at all) is to just invoke a program in some more expressive language than yaml.