A CADA letra o script fazer um request é meio grotesco.
O ideal, na minha forma de pensar, é que depois de um certo número de letras você começar a fazer as requisições, dessa maneira (com 6 caracteres):
<input type="text" name="login" id="login" class="form" onkeyup="if (this.value.length >= 6) { startRequest(); }" />
Ou então após 6 caracteres (ou seja lá qual será o minimo) voce executar o script e este script lhe trazer UM ARRAY com todos os logins que comecam com estes 6 primeiros caracteres. E então, se exister o login digitado dentro deste array, não pode registrar.
Com isso você consegue poupar muitos requests.
Entendeu ?
[]`s