проблема была в том, что код заходит в .then() после окончания проигрывания. Задали audio.src и все стало на свои места
<body>
</body>
<script>
let audio= document.createElement('audio')
audio.src='https://mp3melodii.ru/files_site_02/001/standartnyj_signal_sms_iphone.mp3'
let timerId=setInterval(() => {
let isPlay=false
audio.play()
.then(()=>{console.log('проигрывает');clearInterval(timerId)})
.catch(() => console.log('не проигрывает'))
}, 2000);
</script>