Okay, is contact sensor 1 still open? Because that is also going to fire because you have a condition instead of a trigger for the first expression.
I would change the first part to Contact sensor 1 CHANGES TO OPEN.
Right now, if the Piston fires and Contact sensor 1 is still open, that part of the piston is going to execute again. I would also change the second half of the expression to CHANGES TO ON. no IS on. Because that will end up executing if it is still on when the first part does.