One way we could address is changing our TurnOff implementation. Instead of sending the TogglePower signal, we could send SetSpeed(1) followed by TogglePower, that way we ensure that the fan goes off. For TurnOn, we would just send SetSpeed(n) where n is the memorized speed.
Only downside is that your fans, if already off, may spin up briefly when asked to turn off.
Indeed the track/trust state is really not ideal. I’m considering the above kind of solution, possibly also for the lights (we can do something similar with the dimmer… light would glitch on if asked to turn off. Also not ideal, but what can we really do here?).
It actually gets kind of hard to add trust/track state behaviors based on how we’ve implemented it right now.