The first one seems like it could be a huge issue.  Ultimately we should not be changing the model with every keystroke, we should be validating an input change, reverting it and displaying an error if invalid, and maybe waiting a tiny bit of time after the question select event to display that question, in order to validate any outstanding changes caused by clicking away from the input, and set isSelectNodeBlocked or whatever it is to false.