Как сделать ожидание на setTimeout?
Во в первых используй setInterval. 
Во вторых поставь какой нибудь глобальный счетчик. Когда запрос отправляется увеличиваешь на 1, когда запрос вернулся уменьшаешь на 1. И если счетчик равен 0, то делаешь запросы заново. Примерно так.window.globalCounter = 0;
setInterval(function(){
        if(window.globalCounter == 0){
             // Выполнять запросы
        }
    }, 1500);
Попробуйте сделать переменную status которая будет содержать в себе массив из всех send. Если у всех пунктов true, то позволять делать новый запрос