Short pins of MOC3021 and see if triac stays on all the time. If so then the fault is further back. If so then increase the current through the optocoupler, probably to 220R, so there is actually current flowing through the diode enough to turn it on, and increase the width of the pulse to at least 500us, the tiny pulse you are sending is way too short, the delay in the optoswitch will likely ignore the low intensity flash from the led.
Fix the zero cross as described by IconicPCB above to get a better zero cross detection, and WTF is that thermal fuse for, it in any case should be in the line, and you really want a fuse as well, and a MOV across line and neutral.