It seems it is still a fact that your system has a fixed number of priorities available, since that is a built in limitation of FreeRTOS, as the number of priorities is a compile time constant.
You can then make sure you define that number to be high enough to provide the number you want to allow for your “user” tasks, and then add some FIXED priorities for your framework. Each of the “gaps” between your framework priority levels will have a fixed number of priorities in it, which you provide a mapping from those user levels to the FreeRTOS levels, which will be a fixed transformation. The one thing this doesn’t provide is the ability for the user to specify priorities not just as a number, but as greater than or less than some other already created task, but that method leads to a real possibility that the user requests too many priority levels, so isn’t really a good method to combine with FreeRTOS which has a fixed number of priority levels.