I have mixed feelings about make. On one hand, it's horrible. On the other hand, it's outlived all the competition, and will certainly be around in decades. And if you are a C programmer, you need to understand make anyway.
I have used Yocto quite a bit and it's nice. But embedded systems tend to be pretty simple.
What I would actually like to see is a modern scripting language like lua or Scheme embedded in the make binary.
I like the idea of an embedded OS for running containers. There is actually quite a bit of support in systemd for that. So it might be as simple as Buildroot with systemd init plus a mechanism for managing system updates.
Nerves is another nice approach: https://www.nerves-project.org/