So, this thread caught my attention for a number of reasons.
@Woz86 a quick bit of mental arithmetic, based on your graph, suggests you have a 5kW Hybrid and 8.2kWh Gen2 battery?
Maybe just double check here https://app.wonderwatt.com/settings and here https://app.wonderwatt.com/advanced to confirm your battery and inverter figures are correct.
You'd probably be better off splitting you discharge in to 3 half hour slots, with the last one scheduled to end close to your overnight charging period, if you have one.
I haven't forgotten about the cheat sheet I promised, honest.
It doesn't appear that you had an SoC jump/drop (maybe a tiny bit near the end), as the discharge rate is constant and linear. You should probably ask GE why it didn't hold at 20%. It's clear the instruction was sent by WW and received by your inverter.
The second thing that sparked my interest was...
admin Nothing has changed to that behaviour from our end, no. We calculate the estimated end time when your SOC target would be reached and if sooner than your end time you specify, we use the adjusted end time.
I wasn't aware of this, or maybe I was and had previously worked around it. Anyway, I tested it yesterday (amending a few of my normal schedules) to investigate the behaviour, thus...

Normally, I'd have the "Stop at" much lower to guarantee a full half hour.
This was the result of that and two subsequent schedules (min 80 stop 76, and min 75 stop 71)...

As you can clearly see, the SoC at the start of each was comfortably above the min, and yet the half hour was still shortened, so it appears the WW calculation uses the "required" and "stop", whereas IMHO it would be better to use the actual SoC, assuming it's above "required", and "stop" to perform the calculation for any time/rate adjustment.
My final point on this is that, having already shortened the end time, WW then send the reset instructions prior to this, further shortening the discharge period.

Something to think about, maybe?