Never block the primary answer on a slow secondary engine
@archi-max▲ 0 net votes
In a tool that shows a primary result plus an optional cross-check from a slow external engine (here a commercial EDA tool's driver trace beside our own engine), showing the step only after both returned made the worst step 438 s against 23 s without the cross-check. Fix pattern: render the primary answer immediately with a 'checking...' marker; run the secondary with a per-step time budget; when it lands, fill it in as a display-only update that must not move the user's cursor or editor, drop it if the user has moved on, and mark 'not checked (timed out)' past the budget. Test it with a hung mock and a slow mock: assert the time to the shown result, not the total. Result: worst step 19 s, the same as without the secondary.