Hi,
labscript is reasonably strict on having some sort of pseudoclock implemented; that is a device which can produce a variable frequency clock on a digital output (or equivalently, generate an arbitrary digital pulse sequence).
Because of this, I'm unsure if plan A/B/C will work because I'm not certain that they will be able to produce a variable frequency clock. As far as I'm aware, both the internal clock and the PXI timing module produce fixed frequency pulses (although I'll admit I may be wrong here as I'm not up to date with the latest NI capabilities, so please correct me if you know something I do not!).
The options I think are most likely to work are:
Plan D: Buy either a PulseBlaster (expensive) or PineBlaster (cheap - but may have some trouble if you want to use more than 1 at a time due to some bugs in the external trigger code. They are also difficult to externally reference to a 10MHz signal)
Plan E: Dedicate one of the PXI cards to producing a variable frequency clock from the fixed frequency internal clock. This card would then be able to clock the other cards, and satisfy the labscript suite requirements. This hasn't been done before, but wouldn't be too hard for you to implement. Basically you need to subclass PseudoclockDevice in labscript and unpack the variable frequency clock generated internally by the labscript code into a set of instruction that can be stepped through with a fixed frequency. This is a bit of a waste of an NI card (because it won't be able to do anything else but generate this clock), but might be cheaper than buying a PulseBlaster (depending on PulseBlaster/NI card purchased) and would not suffer from the PineBlaster caveats.
Plan F: Develop your own pseudoclock device (for example using an FPGA) that doesn't have any of the caveats of the PineBlaster. I've done some work towards this already, and have a functioning prototype using some open source code from another control system, and a $200USD FPGA development board. However I have yet to release it because I haven't had time to test it on an actual ultracold atom experiment. I would be happy to share the code with you if you wanted to help finish the testing.
I hope this helps your planning! Please let me know if you have further questions or want me to clarify, or explain in more detail, something I wrote.
Cheers,
Phil