@ariadne @sertonix s6-linux-init does the power button thing and it works, as shown in Adélie.
"Spawning services only when you actually need them" is a part of what s6 and s6-rc do, in their current incarnation; but I think you're thinking of dynamic events, such as those created by a network manager.
It is *difficult* to have a system that is both reactive to dynamic events that can happen in any sequence (such as network events) and that can still give a bootability guarantee and a system state guarantee. Current s6-rc provides the latter, because I think that's essential. Getting it to include dynamic events is another enchilada.
(I need to go to sleep, so I'll stop for tonight.)