I'd recommend considering this for the SPI interface.
The PRU can probably bit-bang the SPI fast enough for your needs, and
you won't have any issues generating small 1-2 uS pauses. Basically,
just replace the SPI hardware with a PRU emulated version that supports
the timing constraints you require. Everything else sounds like it's
working OK.