IIRC, "Interpreted call to" don't do tail call optimisation?
Compile the function and try it again. I.e.
(compile 'generate-children)
etc.