I'm not sure the direct answer to your question Dan, but I recall something about 32MB total for all stack space across all processes. Is it possible that your 2MB allocation is overrunning THAT limit, even if 2MB would otherwise be OK?
As for gracefully reporting stack out of space, I'm very surprised it's not throwing a system access violation. I believe that's what's supposed to happen when stack space is exceeded (I'm trying to remember some details that I caught some months ago looking through TechNet docs, so I may be way off in this). I know the OS should terminate your app, I'd bet that's happening, I'm just wondering if there's a way to trap the fault, maybe even with an external app. At least then you'd know it was a stack out of space issue.