Дай угадаю, асинхронное, но однопоточное? Javascript в браузерах научился в нескольких потоках работать? А то иначе бы мороки с синхронизацией, но её там нет. Поэтому странно называть такое решение "асинхронным". Что там асинхронного? Очень даже синхронно, просто событийно-управляемо. Но у тебя обработка одного события не выполняется параллельно с обработкой другого. Строго последовательно -- т.е. синхронно. Мьютексы не нужны.