Ah yes, you all guessed correctly--this is for a pulsed spot welder. Didn't mean to hold back info to begin with, but I wanted to keep my request as generic as possible for applicability to other situations

. This controller will be attached to a Miller LMSW 220 V spot welder which had its main transformer rewired as per the 110 V model. The extra current was too much for the thin nickel material being welded. Even so, it's interesting to think about the resistive load scenario.
floobydust and Ian.M, I didn't consider balancing the half-cycles to avoid saturation. An earlier version of my welder used a monostable 555 timer (no zero cross detection) to pulse the output through a solid state relay, and the weld quality was often inconsistent. One of my goals with the new design is to improve the weld repeatability. I wonder if the variation was due to de-energizing the welder transformer in mid-cycle.
nctnico, I didn't know there were SSRs with built-in zero cross detection--that's pretty cool! That would be an easy solution, although I'm probably going to continue with the separate detector for educational purposes. With the schematic you posted, what about including some MOVs on the input side? I see that you're already implying fusing with the "L_FUSED" hot line.
Your firmware should trigger on a zero cross and ignore anything for almost 1/2 cycle say 7-8 msec, as any incoming zero-cross in that interval is going to be noise, unless you initially have triggered on noise. I wasn't sure if you are only counting cycles, or also doing phase-control for start or control.
I had planned on some phase control to test various welding scenarios, although switching on the peak, as you mentioned, is probably the best bet. I mostly need to ensure that full cycles are outputted to the welder. I actually wanted to avoid using time delays in the controller and rely entirely on the line frequency to dictate the start/stop sequence based on the number of cycles requested by the user. I figured I could double the frequency from the zero cross detector to catch the wave at a peak instead of a cross. Then, send that back to the control circuit and count the number of periods until the preset limit is reached. (Not that this'll ever be used outside of 60 Hz, but there's a certain elegance in a feedback loop.

)
So, going back to the original question of transformer vs. optocoupler for zero cross detection, it seems that both options are doable and have different pros/cons. I will probably use a sealed AC-DC converter to power the controller, so using a transformer "because it's already there" may not be an option. However, as flooby mentioned, a straight opto would require some additional consideration for the PCB design due to the high voltage. This is a one-off design, and cost isn't a big deal, so I'm leaning towards the separate xformer+opto solution and just account for any phase shift as necessary. Thoughts on that idea for this particular application?
FYI, you've all given me some good ideas to think about. Thanks!