The output stage looks a bit bizarre. Why not just use a simple zero crossing Triac with a logic level drive for the output.
I made a driver circuit which timed the period between the zero crossing measured from the supply transformer for calculating the phase trigger of the triac when I designed a washing machine motor controller.