Yes, thank you very much. Appreciate your support.
I have it down to the following template now, which does provide the expected percentage, when the initial time is set (i.e. when the washing machine is running).
{{ ((( states('sensor.waschmaschine_remaining_time').split(':')[0] | int * 60 ) +
states('sensor.waschmaschine_remaining_time').split(':')[1] | int ) /
(( states('sensor.waschmaschine_initial_time').split(':')[0] | int * 60 ) +
states('sensor.waschmaschine_initial_time').split(':')[1] | int ) | float * 100) | round(0) }}
If the machine is not running the output is 0:00:00
and therefore I have a division by zero, which I need to filter out.