Thank you for the praise :) When you explained this during the discussion, I was so excited :D I'd tried to think of something like this myself, but couldn't figure it out.
I think your proposal would benefit from a few notes of the behaviour of your extra [upward] messages in the context of the theoretical model. I just mean something as simple as
deactivated edges should not receive new Change/NoChange messages from a node;
if an output edge of a node is activated, the node should send the most recent value as a Change message or a NoChange message if it didn't change since the last deactivation of the edge. Please correct me if these are not the semantics you have in mind. (Or rather, rephrase how you see fit anyway because I see these example notes are not very clear)
If they are, they bring me to the question of whether a node should for each individual output signal have a boolean value on whether the value of the node has changed since that edge got deactivated (or something like that). I may be thinking of too complicated solutions here, but I think this checking what to send down a reactivated edge may be non-trivial.