I THINK I can rely on get_children() on a Node being order stable, and that order always being based on whatever has been added most recently.
IFF I am right about that, I can simply make a lightweight windowing parent that does minimal logic, shifting input context based purely on node order. Hmm.