I'm setting up 3 timers, each of which will trigger a hardware interrupt. However, I don't want these interrupts to trigger while one of the others is being handled by its ISR. The work done in most of the ISRs is very predictable -- I know how much time is spent in each ISR to a decent precision. My idea is to set the timers intentionally so the interrupts fire at different times, leaving space for the ISRs to complete. I have some ideas, but am unsure of the best way to achieve this.
Here's an overview of the interrupts, timers, and ISRs:
1. RTOS tick interrupt -- driven by CPUTIMER2, fires at 1 kHz. I don't know exactly how long this ISR takes, but it's less than 15 us.
2. interrupt for 10 kHz loop -- driven by EPWM1, fires at 10 kHz. This ISR takes 13 us.
3. interrupt for 1 kHz loop -- driven by EPWM2, fires at 1 kHz. This ISR takes 70 us.
This is more or less how I'd like the interrupts to fire:

My progress so far:
- I noticed that the EPWM module has function EPWM_setTimeBaseCounter, which allows me to align / offset the EPWM timers as much as I'd like, by setting the value that these clocks start at. This has been straightforward.
- However, the CPUTIMER doesn't seem to have an equivalent function. I did find CPUTimer_getTimerCount, and I can imagine offsetting both EPWM's relative to this, but it just seems like there should be an easier way
Explicit Questions:
1. Is there a "standard" way of offsetting these interrupts? If so, what is it?
2. Is my approach of using EPWM_setTimeBaseCounter and CPUTimer_getTimerCount reasonable? Is there any easy way to work out the math, instead of doing it (and making mistakes) myself?
3. How would one go about spacing the interrupts if they had only used the CPUTIMERS (CPUTIMER0/1/2). Naively, it kindof seems like I got lucky by setting up my non-RTOS loops with the EPWM module, which has the EPWM_setTimeBaseCounter function available.
4. Anything else that I'm missing or that seems very weird about this?