Ты можешь создать промис который зарезолвится спустя десять вложенных таймаутов. Потом этот промис использовать в async/await функции чтобы запустить новый таймаут. Каждая функция в js это замыкание. Просто положи в голову концепцию event loop и всё встанет на свои места.