Is it possible to update a StringProperty as it's being typed?
There is an option for this.
Create the StringProperty with options={'TEXTEDIT_UPDATE'}:

prop = StringProperty(name="Test", options={'TEXTEDIT_UPDATE'})


https://docs.blender.org/api/2.79/bpy.props.html#bpy.props.StringProperty