ok, call me what ever you like, but here’s the thing.
It seems to me that you need a tightly coupled system, because you have timing critical tasks that you are essentially delegating to another processor. And you’re looking at a signaling mechanism that allows you to instruct that processor to execute a delegated command.
So without knowing more about what is timing critical, here’s some options. (and if you’re serious about getting input you will need to elaborate more - is it the sequence of SPI command/s the “slave” needs to issue timing critical, or is the latency from when the master instructs the slave to execute it that’s timing critical, or is it the latency of when the last command “completes” to when the next needs to start ? I get the feeling it’s something to do with the slave needing the commands in time to issue the next when the "short window of time"is open, but really am not sure. And while it’s a dead horse, if the slave is just doing SPI have you considered if the DL40IO could be extended / used to handle this ?)
Use a “wide” data bus between the two, and an interrupt port on the slave to advise it when it needs to read the port. That helps you reduce the “length” of any storage / buffer you might need of whatever command you’re sending, but increases it’s “width”. You could use a latch IC in between the devices if you actually needed to store the state because you can’t control the latency. You’ll likely need a “command” structure to maximize use of the data bus you create, but really that’s not much different to serial except your unit of transfer is larger.
Use a bi-directional signaling scheme (much like RTS/CTS) to tell the other device when it needs to send / receive (depending on which way that is important, and which way it is driven from). This isn’t much different than using a UART except you’re telling the other device you need to be fed or it needs to listen now, and then letting the UART hardware do the transfer which it’s good at.