Im not 100% sure on this but do feel your code should be layed out a little different, even though it might not show a syntax error i would advise it to be done this way.
A application should not follow the "then" on the same line unless it is a direct command like a goto, or gosub or the " : " is used in between.
Some syntax will work without fault and others will not when all included on the same line.
I also would add some pause statements for testing to slow down any strange operations so they may be detected.
Code:
main:
if input4 = 1 AND input3 = 0 then
high 2 ;gas and switch ON, wait 12s and Motor ON
pause 200
endif
if input4 = 0 OR input3 = 1 then
low 2 ; gas OR switch OFF, Motor OFF - if the flame is on in the middle
pause 200
endif
goto main
I would also remove the 10uf cap as it dont really need to be across the motor, after testing you can always put it back is you want but it will make the measurements easier without it in circuit.
Pete.