Your mains zero-crossing routine should have some sanity filtering built in to ignore pulses that are too short and perhaps fix up ones that are too long (i.e missing pulse). Power line signals are notoriously noisy/glitchy... particularly around the zero crossings.