ESP32 Wake Word Timer

I’m struggling to get timer audio working using the below yaml, if I change the delay to anything below 500ms it works, but the audio is sped up, anything over 500ms does not output audio but the timer function activates.

Audio file is pulled directly from the ESPhome folder, which was downloaded from the esphome github timer_finished.wav

I have also tried:
- wait_until:
not:
speaker.is_playing:

  on_timer_finished:
    - micro_wake_word.stop:
    - voice_assistant.stop:
    - switch.turn_on: timer_ringing
    - wait_until:
        not:
          microphone.is_capturing:
    
    - wait_until:
        not:
          micro_wake_word.is_running:
    - light.turn_on:
        id: led_strip
        effect: "Scan Effect With Custom Values"
        red: 80%
        green: 0%
        blue: 30%
        brightness: 80%
    
    - lambda: id(va_speaker).play(id(timer_finished_wave_file), sizeof(id(timer_finished_wave_file)));
    - micro_wake_word.start:
    - wait_until:
        and:
          - micro_wake_word.is_running:

    - while:
        condition:
          switch.is_on: timer_ringing
        then:
          - lambda: id(va_speaker).play(id(timer_finished_wave_file), sizeof(id(timer_finished_wave_file)));
          - delay: 1s
    - wait_until:
        condition:
          speaker.is_playing:

Adding the log error for clarity

[D][ring_buffer:034][speaker_task]: Created ring buffer with size 16000
[D][i2s_audio.speaker:116]: Started Speaker
[D][i2s_audio.speaker:123]: Stopping Speaker
[D][i2s_audio.speaker:129]: Stopped Speaker