The schedule has been pushed back somewhat (see the comments on that post; I'll update the schedule in the first message soon), so the final date will likely be a week or two after April 24th. But no, we have no plans to allow-list accounts into using the old synchronous code path or anything like that. When synchronous order finalization is finally fully turned off, there will be no carve-outs.
No, we don't expect finalization to take any longer, in the usual case. The purpose of this change is to make it so that those few finalizations which already take a long time are able to succeed, rather than timing out. It may take slightly longer from your client's perspective, just because the client has to make ~1 additional network request, but that's very little in the grand scheme of things.
It's worth noting that the acme4j example client already does exactly the right thing for asynchronous finalization! It makes the finalize request, throws away the result, then polls the order status until it becomes VALID, and then finally downloads the certificate.
// Order the certificate
order.execute(csrb.getEncoded());
// Wait for the order to complete
try {
int attempts = 10;
while (order.getStatus() != Status.VALID && attempts-- > 0) {
// Did the order fail?
if (order.getStatus() == Status.INVALID) {
LOG.error("Order has failed, reason: {}", order.getError());
throw new AcmeException("Order failed... Giving up.");
}
// Wait for a few seconds
Thread.sleep(3000L);
// Then update the status
order.update();
}
} catch (InterruptedException ex) {
LOG.error("interrupted", ex);
Thread.currentThread().interrupt();
}
// Get the certificate
Certificate certificate = order.getCertificate();