Thanks Matteo.
For now I’ve deployed on an internal server box. My users are enthusiastic about the application (a dashboard for our call center).
I don’t know enough about tornado to know where the problem is occurring but it seems that Cloud Run and AppEngine (I believe they are basically the same stack) are taking over control of the websocket connections.
Kevin