Same doubt here.
If I create a new execution context then a new task inside it won't be able to access the process variables, right? I would have to copy all the variables, but the addVariables checks if there is a parent token (same logic as the getVariables). In the end, I'd have to create the variables inside the new execution context just to be able to read some values. It can get really troublesome if those process variables change.