Without seeing your rule, it would be difficult to say. There is an app with the same name that you titled this thread with that works very well in most situations.
My guess would be the detection thresholds you are using may not be opportune for weeding out low idle power in the non-standard wash modes. You will want power to fall below a threshold power for a threshold time in order to indicate the end of a cycle. I know I had to modify mine to longer waits specifically because the non-standard cycles have some longer soak times where power is low. This just means I do not get the notifications immediately when the wash truly is done. However, I get fewer false starts and and false "done" notifications.
Additionally, the app has a method to detect that it is already running. Unless you are monitoring the rule private boolean, or have one set up to indicate the rule is already running, it is likely to run multiple instances of the rule in parallel every time the power drops and then rises above your start threshold.
Not saying it cannot be done in a rule. Just saying that there are already community apps out there that handle these scenarios quite well. It might be worth looking into. They are both available in Hubitat Package Manager, keyword search "laundry"
I use the Zen15 on my washer. I just have the driver I listed above set to activate when the power level goes above 8 watts, My washer sits at about 3 watts when idle. Then if it stays below 8 watts for 15 minutes it's done. Our washer has it's own signal that is loud enough we usually hear it but if not, then it gets announced on all my echo devices and my wife and I both get a notification on our phone. It's 15 minutes after the fact but for us that is fine.
Sending all those power and energy reports at that low level and those short intervals are a very bad idea. Too many power reports like you have your device set is the fastest way to wreck a Z-wave mesh. I am surprised you aren't seeing slowdowns or delays in your Z-wave devices.
I would turn off all those except 1-2. My personal preference is to use Power Value Change (Watts) and Power Interval. I would set Watts quite high, 50W or more if possible. There are very few machines that don't change 100W or more when changing cycles from spin to rinse or from spin to off. For interval, a couple minutes is plenty fast for a wash machine, and I think it helps as a catch-all in case the other setting doesn't quite capture the end of cycle.
Go back to the Logs for your most recent wash. "Chart out" the power reports. You'll have a lot because you were forcing a report every minute. Determine the lowest non-zero value and how many times per cycle that occurs.
You have BLM set to Start at over 8, yet you tell the power plug to not report til 10. (The 5% report would be sent first anyway.) I'd suggest picking one report. Set the intervals to an hour. Set anything that isn't Power to as big as you can, disabled if offered.
That should leave you with three reports: Every 10 watts and Every 5% and every 2 min. But you need one, usually. The point is: try and reduce the number of reports coming from the Zooz to the MINIMUM that allows you to determine the Start and End of a cycle. Chart it out from logs, find the lowest non-zero power and count how many times that occurs.
Then in BLM, set the Three Stop values to match. Set the Start value above the stop value, 5% above, 10% above, depends on the actual power swing reported. A washer from 1980 might hit a thousand watts, a washer from 2020 would be a lot lower. Then set a Max Cycle time. That becomes a "rare cycle" detector
Recognize that you don't need a Notification from BLM within 20 seconds of the end-of-cycle. Also realize that sequential reports of the same value get filtered out by the platform. If your washer is using 20 watts to refill for the rinse cycle, then you won't get multiple sequential 20 watt logs. Even if you have Interval reports at 2 mins, if the value sent is the same, they get discarded by Hubitat.
You might want to grab a copy of this Virtual Power Plug driver and use it to test your cycle. You have the charted values from a real cycle, create a virtual device using this driver and swap it into BLM. Then enter those values, into the Virtual Power Plug and verify they cause BLM to detect the start and end.
Thank you so much for the detailed response. I will make these adjustments as I understand them. I also will try and review the future logs for different wash cycles. I noticed that BLM would work for a Normal Wash, but then not trigger for Delicate with a Softner Rinse (lol).