You should also queue AJAX request and only allow one or two at a time from the browser. That way, if you are really attached to this request after every keystroke feature the server can handle the load slightly better.
Why do you need to make an AJAX call for a 1 character string? I typed in 't' and an AJAX request was fired off. That was 20 seconds ago and I am still waiting.
It also appears that when the browser receives a result it runs several more AJAX calls recursively on all of the returned items. All of that should be done on the server. The overhead of all those HTTP requests is just too much,
I would do the following to make this better:
1) Have a minimum query length for search
2) Don't do a request for every keystroke
3) Make an AJAX request queue
4) Do all of the recursion on the server, don't open a new HTTP requests for each recursive call
I think this will be a lot better for server load and usability. Right now it is horribly inefficient.
I have no use for it but would be pretty cool if I were looking for a domain name.