Hi A.Goodwin and thanks for posting,
You're right that the InfoPath eventing model requires that focus move out of the control before validation takes place.
InfoPath has an option in the text box properties to automatically move to the next field when a certain number of characters are type in. This can be used to provide validation for UPC scanners etc. Probably won't work for you though since you have variable length text.
I recommend just using an optional section in your form with static red text saying that the text box needs to be filled in. You can put this under the button. You can have two buttons for Button 1. First button is "Confirm" and that has the effect of validating the field since when they click it the focus is changed and then the optional guidance text section will disappear and I would hide the Confirm button based on the same condition and then display a Submit button. Which will now succeed since the text field is now valid.
Just some random ideas to help you workaround the limits ...