I think I found the solution to the ghost switches and posted here: https://github.com/zigpy/zha-device-handlers/issues/523#issuecomment-744746599
Basically the solution is to reset the state in ZHA, not in HA. This is the yaml to change the state (replace IEEE with the sensor address):
service: zha.set_zigbee_cluster_attribute
data:
ieee: '00:15:8d...'
endpoint_id: 1
cluster_id: 1280
cluster_type: in
attribute: 2
value: 0