How to NOT turn element read only when waiting for '#ajax' callback in Drupal 7 forms?
I'm not sure I agree with your premise (interesting question, nonetheless). If performing a second operation while the first is already running would cause a problem client/server side, then that operation should definitely be blocked in my opinion.

If the only issue you have is that the blocking is done by way of disabling the text field, consider that it's just a matter of good UX. If the field wasn't disabled, but the functionality was, then there's no feedback to the user, who is left wondering why nothing's happening even though they're typing into a text field that has some rich functionality a few seconds earlier.

That said, if you want to override the behaviour of Drupal's AJAX have a look in the /misc/ajax.js file. You'll need to re-implement at least:


Drupal.ajax.prototype.beforeSend
Drupal.ajax.prototype.success
Drupal.ajax.prototype.error


Those functions set/remove the disabled attribute on the element. It should be reasonably straight forward to re-assign those functions in a custom JS file, and you can just remove lines like this:

$(this.element).addClass('progress-disabled').attr('disabled', true);


Or tweak it to something more palatable for your use case.