i’m scare you can’t use osdelay from an isr
it never exit becasue the systcik piroity use for hal_tick is lower priority than the isr you are ( systick is lowest pri wiht freerrtos)
so inc tick can’t be served why you do not exit from you rISR you may find same isue in some hal driver like i2c and spi sd etc ...
Even it is not nice to delay and keep cpu buzy in isr (speilay fi very high pri) you can use one of the 32bit timer wiht pescraler set to get 1KHz period
then read/use the 32 cnt value for a “safe ” delay or timing mesure while in isr.
that is typicaly what i do when i use freertos i overload (weak) the HAL_GetTick() to read the 32 bit timer CNT instead of using dwTick
(i also overload inctick to make dummy as icnremting dwtick isnto need then anymore )