Thanks for the quick response. Unfortunately, I tried changing the linker script as outlined in the link you sent and everything else I can think of, and still get the same garbage. I'm trying to figure out how to change the library that it links with in STM32CubeIDE and haven't figured that out yet.
It turns out that the fix was to rewrite the _sbrk routine to what was outlined in the first reply. I hadn't looked at it carefully enough initially.
The original _sbrk routine assumes that you have a linear address space and the heap is below the stack always. That is not the case when you use freeRTOS and have multiple stacks that are statically created. I had to add a label to the heap end in the linker script file and follow what was done in the first reply example.