Così a occhio rimane solo quel:
else if (s == 0)
L'else all' inizio lega la condizione al non verificarsi della precedente.
Se capita il caso in cui c'è il doppio azionamento, allora nessuna delle condizioni seguenti viene valutata, compreso lo stato 99, per cui resterebbe tutto acceso.
Ma poi, alla fine, i "disturbi" di cui dicevi nel primo post, non si sono più visti?