Самый простой способ буферизовать следующую дорожку - создать второй аудиообъект.
const audio1 = new Audio('first.mp3');
audio1.play();
const audio2 = new Audio('second.mp3');
Когда вы задаете URL для аудиоэлемента, он заблаговременно буферизует некоторые данные.
Если вы хотите принудительно загрузить всю вещь, я предлагаю использовать ServiceWorkers для перехвата запроса от аудиообъекта, отбросить заголовок запроса Range
и кэшировать весь ответ.