Но речь ведь идёт именно про AJAX запрос (в предыдущем сообщении почему-то подумал, что имеется ввиду обычный запрос).
Чем не подходит такая схема:
— перед отправкой запроса устанавливаем таймаут 500 мс, при достижении которого вызывается функция, которая
-- отменяет обработку ответа на запрос
-- выводит сообщение о таймауте
— отправляем запрос, в обработчике запроса отменяем таймаут