Hi Karina, I think you've solved my problem
The xcart_orders table had a mix of languages, 'en' and 'US' - and for us the correct language is 'en', for which we have products_lng_en table but we don't have a 'products_lng_US table.
Clearly the mix-up occurred during database upgrade and syncing because new orders since going live have language = 'en'.
It all makes perfect sense, because when I set the delay period to 3 days I set the first order number to be since the upgraded site went live, so language would have been 'en' and no SQL error raised. So you are right that 9 days or 3 days made no difference. When I used 9 days I set first order to be from the "old" site.
I shall update the xcart_orders table to set all orders to 'en' and report back. At the risk of being premature - thank you very much
I hear what you say about only 500 orders being checked at a time - that's good.