Nice! So you've read some source code. Do you understand what's happening here and can you explain to others who might be interested in writing such functions, what you are doing here and what gave you this idea? And also, what's potentially problematic about it, that it's a reentrant function?
Instead of adding attributes to the Process and of pushing contexts (which can easily break Snap! big-time) you could use a more Snap!-like approach, e.g.
What do you think?