Button to reflect the status of a dishwasher, but runs a script when pushed?

I have an automation that turn on the dishwasher and then after a short delay start a wash programme…
I want to have this trigger on a button press instead of a timed event - But I have no ideas on how to use a button to toggle a “script/automation” then keep the toggle “on” when it’s in a running state.

Ideally I want to have a toggle switch that shows the state (Off or Running) then when toggled on cannot be toggled off - as it’s running.
Any pointers on how to get started with this ?

I have a helper “dishwasher toggle”…

alias: Dishwasher Autostart
description: ""
trigger: []   <removed the time for this>
condition: []
action:
  - type: turn_on
    device_id: cf66c784901247bdbd965da20d826c90
    entity_id: switch.dishwasher_power
    domain: switch
  - delay:
      hours: 0
      minutes: 0
      seconds: 5
      milliseconds: 0
  - type: turn_on
    device_id: cf66c784901247bdbd965da20d826c90
    entity_id: switch.dishwasher_program_eco50
    domain: switch
mode: single