Create a programmable datapath, driven from UART or SPI. This would allow easy stepping. The core idea is to remove time from the equation. Use only event causality. That will make it possible to slow everything down, and also emulate it on a different substrate that is much easier to instrument. I don't think it is that hard to introduce rendez-vous into an existing unidirectional sync system. See above.