Hi Andreas,
the only gotcha here is that FreeRTOS recycles the startup stack (as normally defined in the linker command file and referenced on most MCUs as offset 0 or 1 in the IVT) as the interrupt stack. That’s really all there is to it; we’ve had this issue numerous times here (for example regarding the case that automatic variables allocated during startup will be invalid once the scheduler is started).
Now the question is how to obtain that stack pointer. On M3+, use the vtor register. On M0 MCUs, there is no vtor, so your second best guess is to assume that the IVT is located at address 0. As the comment implies, this is not always safe to assume, so (in my reading) the interrupt stack starts where the current MSP is as the scheduler is started, so in this port, you would be able to reuse automatic variables of the startup context.