What's happening is that the act of turning all of the lights off triggers the program to be re-evaluated, comes up false and then follow the else path. Since the lights act like state variables and cause the program to be immediately re-evaluated, what I'd usually fix this by creating as second program with more fine-grained conditions and put the Else into the Then statement of it.
I'd probably use an integer variable, so the then becomes:
$Variable = 0
Set Scene Off
Wait 5 seconds
$Variable = 1
Then use that 1/0 variable as a condition on the second program, so that the If reads:
$Variable is 1
And Status of all lights
And IR_006 is pressed
And then make the Then part your current Else statement.
I believe there's a flag that only allows a program to run if it hasn't been run in a certain period of time that's now built into the 5.x firmware, but I've never used it so can't speak to it.