I am surprised you didn't use the word abstraction even once in your description of emergent systems. I admit I have some catching up to do on the state of that topic but I couldn't help but notice the symmetry between the stack of phenomena as you described it and abstraction layers of basic computational systems. APIs and programming languages expose an interface that completely abstracts away the implementation beneath it. And much of the layers added have indeed emerged in the sense that they have been built based on what we thought might be practical on top of established layers. Anyway, just some food for that unformed thought of yours ;)