Hi. I'm tired, and didn't have much time to test the new build, but I'm getting crashes when trying to access private variables from Python. Perhaps I'm missing something, though.
In the past, I've handled this by adding my own variables to the Python instances of those objects, instead of using Construct's private variables. They can be read in Construct events by using the System object's Python() command.
I don't think that your first question is possible in construct events, due to the special notation that Construct uses for variable names. However, it should be fine from python, provided that you use a python string variable containing the global name, possibly using the workaround mentioned above.
Such as, the python expression: system.globalvar(object.somevar)
As for your second question, I've only found a bit of a hack that will do that. Either append the text, then set the selection to to the end of the text, or set the selection to the end of the text, then replace the selection with the text to be added. The latter is a bit prettier in practice. The set selection action will force visibility.
Take a look at the write() method of the PyShell class in my PythonShell. It handles writing of all text to the EditBox that is used as an interactive Python shell. A simpler example, in python:
text = "Text to add.\n"
EditBox.SetSelection(len(EditBox.Text), len(EditBox.Text))
EditBox.ReplaceSelection(text.replace('\n', '\r\n'))
The EditBox uses '\r\n' as newlines.
I don't know about your third question. Being Windows objects, I think you may have to move them out of layout or destroy them to get that behavior.