Cancel and join all caller requests/collectors before closing. Injected mock engines remain caller-owned.