I'd build this as a Shopify Function that fires the rate engines in parallel and returns whichever responds first—or falls back to Shopify's native rates if ShipEngine times out at 800ms. That way the merchant gets live carrier options when they're available, but checkout never stalls waiting for a third party.
A mid-market Plus merchant with complex shipping needs wanted to surface live carrier rates from ShipEngine at checkout without risking cart abandonment due to slow third-party API calls. They needed the checkout to remain responsive even if the external rate engine exceeded acceptable latency.
Four pieces
Shipping
Delivery Rates Function
Captures the cart and delivery address at checkout, then decides which rate engine to use based on speed.