Sounds like this could be realized by letting step 1 create a custom python feature
in that way you can store data directly on the object (along with the geometric shape)
and access it later.
This even works after saving and loading to a FCstd file.
I have steps 1,2 & 3 all working from the console as one large Python file as there is persistent storage while they run on the console. I am now trying to split them into 3 Macros and because the Macros run in a different name space than the console there is no persistent storage between one Macro execution and the next. At least not that I can find out about.
From reading the page you mentioned, it seems to write out binary objects to FCStd files, something I already have working (although not in FCStd format file). I don't want to write the intermediate results out to a data file as it seems rather old world in an OO environment. But if I have to I guess I have to. I am trying to find keep the intermediate results in memory, I could store them on an object from the classes mentioned on the page you mentioned but it would surely get garbage collected as my own class does once all references to it end when the macro finishes executing.