Systick in interrupt using FreeRTOS
Milliseconds is way to long to be spending inside an interrupt, especially when you are using an RTOS.  If you interrupt service routine is that long that I would strongly recommend deferring the processing to a task.

FreeRTOS uses the SysTick timer itself, as will probably any RTOS that runs on an ARM Cortex-M part.  Further, the STM 32 libraries themselves use FreeRTOS, and the STM32 HAL SysTick interrupt handler calls its own timing routines before calling the FreeRTOS SysTick hander - so the SysTick is not available to the application writer.  However there are plent of other peripheral timers you can use.