This is a known problem with how homekit works compared to how the openhab plugin is programmed. Your idea of disabling the on and only sending level doesn’t actually work because sometimes homekit ONLY sends “on”. It’s quite frustrating to deal with actually. The proxy items shown below do work - but involve 50 or 100 ms timers to “catch” the double commands. My solution with node red is to save the previously used level in case homekit only sends “on”
There is another recent thread from yesterday I think about a new homebridge-openhab that could also address this but I’m not sure that developer has gotten that far yet. Search the forum for “homekit holy grail” and it will come up.