Minimum work queue task interval

I have developed a custom module that is executed as a work queue task. I’d like to run it at 1kHz rate, so I used ScheduleOnInterval(1000_us).
However, it only runs at around 470Hz (value taken using the work_queue status command) even if I assigned it to the rate_ctrl work queue.
Is there a way to achieve the desired 1kHz rate?