The two options I can think of are:
-
Use xTimerPendFunctionFromISR to pend a function to the timer task to do the abort (that is basically you create another task, but use a task you likely are already using).
-
The other is to rather than use xTaskDelayUntil(), to compute the number of ticks and then wait for a semaphore or Direct-to-task notification. This does have the race condition of getting a tick interrupt between getting the current tick, and the actual blocking operation.