Прекрасное односимвольное именование переменных, отсутствие рабочего примера — это все очень хорошо.
Не вникал в код и не искал логические ошибки, но рекомендую почитать про асинхронность в JS и коллбэки. Если просто взять и написать два setTimeout, первое и второе заданное время будет отсчитываться от одного и того же момента времени. То есть, если первое время будет больше второго, то сначала выполнится содержимое второго setTimeout.
Если вкратце, то второй setTimeout нужно устанавливать изнутри первого, и никак иначе.