Micah,
Probably need a little more detail to know for sure, but I can recommend a few things assuming you are using standard Pulseblasters for the pseudoclock.
First stop is to check out the PrawnBlaster and PrawnDO. We just put a paper on the
arXiv describing them. Because the prawnblaster implements truly independent pseudoclocks, it's much easier to hit the fundamental timing resolution (10ns with 50ns minimum pulse width).
If you need even better, I would recommend
this device, which has timing resolution at 1ns and has labscript drivers written for it (though not in the mainline repo, we should probably fix that...)
If you need something more bespoke, you'll need to provide a bit more detail.
-David