One thing to watch with the simple state-passing pattern: as state grows across nodes, you can hit context window limits fast in production. Did you explore using annotated state with reducers (like operator.add for message lists) instead of full state replacement? That pattern keeps state bounded while still allowing each node to append rather than overwrite — which matters a lot once you have 5+ nodes in a real workflow.