CMSIS and sub millisecond delays
The granularity is probably a limitation from FreeRTOS, not from CMSIS itself.

Since you require a task every 2.5ms you might want to setup a timer to trigger every 2.5ms (Interrupt). Do what you have to do inside your interrupt (but keep it short) and get out as fast as possible. Usually there is hardware available for specific tasks, so if you can tell us something about your task at hand, there might be a better solution.