OK, the problem was actually using a synchronous ajax call which I have since discovered stops any browser activity including display updates! I wouldn't normally use a synchronous ajax call but in this case because its in a validator it needs to block the form submission.
This thread discussed the various options available to solve the real problem :)
How do I do a jQuery blocking AJAX call without async = false?
Further note, trying to call service-side validation via ajax during the submit process is actually a flawed design unless one is prepared to build the necessary state machine to cancel the submit process then block the UI until the ajax returns then continue the submit process or not.