Твой код все равно будет трансплититься в понятный большинству браузеров. И независимо от того, как ты напишешь свой код, затык по производительности не исправится сам по себе. Тебе надо его выявить, а потом думать как исправить. Более чисты код тебе поможет. Вот у тебя есть вложенные асинхронные вызовы, если следующий не зависит от данных предыдущего, то их можно вызывать по отдельности, не дожидаясь пока завершится один, а уже где-то ниже по коду обрабатывать их результаты. Вот подобное делать с промисами самое то, async/await избавит от написания колбеков.
// долго, так как сначала ждем а, потом б
// если на выполнение каждого надо по 5 сек, итоговое время выполнения будет 10 сек
async function sum(a, b) {
const a = await getA();
const b = await getB();
return a + b;
}
// быстро, так как создали по промису, и они одновременно обрабатываются, потом только ждем их результатов.
// если на выполнение каждого надо по 5 сек, итоговое время выполнения будет 5 сек
async function sum(a, b) {
const a = getA();
const b = getB();
return await a + await b;
}