Websocket connection times out after 10-15 minutes despite replying to PINGs

Then it might be an issue with your ISP or something else.

Not sure what else I can suggest when all my things look ok to me.

You seem to be doing everything correct, so that leaves routing.