Widget script.id versus script turn_on one works other not

Can somebody help me adress the difference between a widget with
service: script.16985102707
with field and value
zin this is a test
This widget is working and speaks this is a test

Versus the another widget with the same script via the turn_on version
service: script.turn_on
Entity_id script.spraak (which is the same as 16985102707)
zin this is a test
This script is NOT working'

alias: demo_spraak (this is 16985102707)
variables:
  spraakkeuze: "{{ spraakkeuze if spraakkeuze is defined else \"optie1\" }}"
  zin: "{{ zin if zin is defined else \"dit is een test\" }}"
  volume: "{{ volume if volume is defined else 0.4 }}"
  wacht: "{{ wacht if wacht is defined else 0 }}"
  wachtvoor: "{{ wacht if wacht is defined else 1 }}"
  wachtna: "{{ wacht if wacht is defined else 1 }}"
  xmplayer: >-
    {{ mplayer if mplayer is defined else
    "media_phttp://192.168.20.48:8123/maplayer.chromecast_huiskamer_nest" }}
  mplayer: "{{ mplayer if mplayer is defined else \"media_player.alarmspraakbeep\" }}"
sequence:
  - choose:
      - conditions:
          - condition: template
            value_template: "{{ spraakkeuze == 'optie1' }}"
        sequence:
          - service: media_player.volume_set
            data:
              volume_level: "{{volume}}"
            target:
              entity_id: media_player.alarmspraakbeep
            enabled: true
          - delay:
              hours: 0
              minutes: 0
              seconds: "{{wachtvoor}}"
              milliseconds: 0
            enabled: true
          - wait_for_trigger:
              - platform: template
                value_template: >-
                  {{ is_state(media_player.alarmspraakbeep, ['standby',
                  'idle','off','paused','on']) }}
            enabled: false
          - wait_for_trigger:
              - platform: template
                value_template: >-
                  {{ states(media_player.alarmspraakbeep) in ['standby',
                  'idle','off','paused','on'] }}
            enabled: false
          - service: tts.google_translate_say
            data:
              entity_id: media_player.alarmspraakbeep
              message: "{{zin}}"
              cache: true
              language: nl
            enabled: true
          - delay:
              hours: 0
              minutes: 0
              seconds: "{{wachtna}}"
              milliseconds: 0
            enabled: true
icon: mdi:home
mode: single

When you call a script using service: script.xxx the process calling the script waits for it to complete before continuing. If you use script.turn_on it doesn’t wait.

But the action in the executed script is only to speak a sentence…
Why no spoken sentence in the second scenario

perhaps the variables are pasthrough another way with these two scecarios Then the question is how to adress this variable zin in the turnon scenario