I personally try to minimize use of dynamic memory, and stack to a reason. Tasks are created with their stack statically allocated at fixed locations in ram allocated by the linker in arrays statically allocated.
Your problem is to locate what is causing short term explosion in your stack usage, One risk of classes is it can become easier to just tuck a big array into one and forget about it, as it is a layer or two below what you are looking at.