I believe, but am not sure, that NonStop ditched lock-stepping altogether for their
NonStop Multicore Architecture when Itanium went multicore, but I can't find a paper on it, or their current X86-64 Architecture.
They used a custom chipset that compared the two MIPS processors and also synchronized them on external interrupts. I believe that Tandem System Review is on archive.org. Volume 8, Number 1 (Spring 92) has info on the first generation lock-stepped TNS/R, and Volume 10, Number 1 (January 94) has info on the 2nd generation MIPS "Himalaya K1000".
For Itanium, the processors were loosely synchronized, but not really lockstepped. They ran the same application code, but the processors could have different cache, TLB hits, etc. They got synchronized on external IO, all of which went over the ServerNet. There is a paper called NonStop® Advanced Architecture[0] by David Bernick, et. al that has the details on their 1st generation Itanium systems.
[0] https://www.cse.chalmers.se/edu/year/2012/course/ZZ_courses_...
(the only source I could find that had the paper)