The trouble here is the same problem that affects tons of static analyses: what do you do about higher order functions. I'm pretty skeptical that heap allocating every call to a function pointer/closure/virtual method is going to be fast enough.
At that point I have to wonder what the advantage is over just using explicit checks for overflow on the machine stack though.
It's not 'a split stack' or any other particular solution. You pass in an allocator and it does it whichever way your chose allocator picks.
The goal is to explore sections of design space you're completely ruling out from before you even start.