I am aware of the distinctions between hardware interrupt and OS task priority. Since I'm so new to using the USB stack AND FreeRTOS, I was looking for individuals' experience/knowledge specific to the situation I explained in the original question.
Regarding the device receiving a message/packet via out-endpoint, the USB PHY does all the work for receiving the data in hardware with an interrupt being triggered once the data is received. The point being no software polling or other OS interaction is required to received the data, but naturally software is required to deal with the data once received.
Regarding sending data via the in-endpoint, the send operation must be initiated in software. After the initiation there are a number of calls within the stack that must occur before the data is actually sent. Once the stack works it's way to the actual hardware send, is all the software work done other than looking for the "kStatus_USB_Success" reply?
Do I need to have the USB task at the highest OS priority? That could be a problem in our application as we have some timing sensitive activities.
Since the HID class uses interrupt transfers (yes I know that this does not mean hardware interrupt), does the stack entirely handle the guaranteed delivery aspect of interrupt transfers, or do I need to address failed delivery in my application? Same general question for received data.