We've been doing some related work in V8. Can now do your example in 0.5s (factorial) + 1.5s (toString). Demo: gist.github.com/jakobkummerow/…
Our implementation is designed to be reusable (no dependencies on V8 internals), we'd be thrilled if Python adopted it: github.com/v8/v8/blob/mai…

