The YAML compiler was using SubWorkflowPlaceholderStep that returned next() immediately. Replaced with real SubWorkflowStep from wfe-core that starts child workflows and waits for completion events. Added regression test verifying the compiled factory produces a step that calls host_context.start_workflow() and returns wait_for_event.