I have a multi-value reference (node) field. I'm using the inline_entity_form module on that field, and the field also has a validation function (from my module). The original problem was that, when clicking the "Add another item" button (which, as far as I can tell, posts back to the same form/URL via an AJAX call), my validation function was firing - and since the user hadn't completed the form, validation errors were being shown.
After researching it a bit, I read that to keep the form-level validation from running during an AJAX call, I should move the validation to the submit button(s). When I did that, I got the "Entity validation was skipped" error. Research on that error showed that, when submit-level validations are registered, the form-level validations don't get executed. Not sure why that would be.
Edit: the following was changed from the original post...
I moved the validation back to the form-level, and dug deeper. I noticed that the submit_handlers property of the form_state class cause the correct submit handlers to run based on AJAX vs. form submit (see screenshots). Why doesn't that happen with validation functions?