When Drupal\Core\Render\Renderer::doRender()
processes #lazy_builder
callbacks the #type
defaults are already loaded, so any element with a #type
property will not be rendered properly.
A #pre_render
callback often adds new types in child elements only, when it becomes possible to have the type defaults loaded. With a #lazy_builder
callback it's not common to return a child element.