IterationPayloadManager manages getting/setting of the current iteration payload (e.g. the current cursor as you called it.)
IterationSelectionManager provides access to the specified selection variable (e.g. something that was selected via GraphSearchConditionBuilder (this name was initially "Selection" and we probably need to think about changing the name to something else)
Regarding renaming SelectionFactory. I don't really like the name VarStack, but I am open to suggestions. I think in looking at it again, it might even need to be split into two types: "SelectionVariableStack" or "IterationPayloadContext", because SelectionFactory currently does both of those things, and they could actually be separate.
~Lincoln