SOLVED,
Although I don't really understand why. I turned on tracing in my database object, and saw that just connecting to the db was taking 5 seconds. I googled on that, and then found a thread about localhost not working, and using 127.0.0.1 instead.
I changed the server address from '192.168.1.10' to '127.0.0.1' on the prod server and now the site runs perfectly.
This makes no sense, because dev still uses '192.168.1.30' and it runs fine. I'm afraid there is something deep and dark inside the mysqli constructor and/or DNS on prod, but I'm going to move on for now.
I hope this thread will be of use to anyone faced with a similar situation, and thanks for the replies.
-- Mark