You don't really have any waiting between enter and the error appearing. There's an event I like to use at the adapter level to use when navigating back to the same screen. The event is NewScreenShowing. This will fire whenever a new screen appears. In this case, I would wait for this event (add the event to your automation by selecting it from the adapter in Object Explorer and right-click it and select "wait for this event"). Use the Setup link of the wait for event to trigger your "SendKeyPlusEnter". The Fired will happen when there's a new screen and you can check to see which new screen is there (by using the IsCreated for each screen that might happen after clicking enter).
My normal flow in a Text adapter automation when I have a screen that can "error" and essentially re-appear is to use the following logic;
Populate screen A.
Use the WaitForEvent for the NewScreenShowing event.
Off of the Setup link, trigger the "Enter" or whatever key takes you to the next screen.
On the Fired link, go into a WaitAny (you can also use a series of IsCreated properties here too if that makes more sense) where you've connected any of the possible screens that might appear including the one you are currently on. Set the timeout on the WaitAny to 1 as you don't really need it to wait for any amount of time as this is just a shortcut to a series of IsCreated checks.
The partial screen will always be created essentially (depending on how you matched it). I would just make it a region on your screen. I don't think your WaitForInputAllowed is really doing anything, although we could see in a log if it is really waiting for anything. You can just add a large pause before you pull the text (right before your Exit add a 5000 ms pause or something large enough so that the error is present) to confirm that it is really a timing issue. If the pause gets the text, then you know that you just aren't waiting for the right thing. I would still suggest you implement my suggestion of using the wait for event.
That means that the NewScreenShowing event should work to allow you to get the results. A pause shouldn't really be relied upon since it might be too long or too short depending on the performance of the application.