If we have very high volume, or bad server performance, it's possible a customer's order will take a long time to process. For a Cashtab user, we don't want them to see a spinner for 30s, leave the app or forget about the order (or try to make a new one), and then seemingly at random have the first one clear.
Arbitrarily refuse to process orders more than 20 seconds old. Cashtab can be set to timeout at this value, so the user can know that their order will in fact not go through from the UI directly. We can tweak this value depending on observed performance.
Reject POST /api/v1/swap with HTTP 408 if the request is at least
20s old when the settle queue job starts or immediately before broadcast.
Cashtab will abort at the same window; filling after that can double-pay
on retry. 408 is not ValidationError so Telegram does not treat this as an
invalid swap.