так и выходит, что даже при глубине стека в 3-4функции вызовов много
это "много" самоубеждение, если не плодить async/await там где не нужно было ждать промис, то ничего такого не будет. А если тебе в каждом месте надо ждать промис, то наверно что-то ты делаешь не так. Сгруппируй всех ожидателей в 1 колбэк и все.