Hello Glen,
As you can see from this lengthy discussion you've dug up, the Channel API can be quite temperamental, mildly speaking. I'm sorry to tell you that there is really no magic bullet solution, that's just the way that Channel API is right now.
However, here are a few solutions you might find more reliable:
1. Go back to standard AJAX/JSONP communications. Reliable, but can be taxing on the server.
2. Set up a node.js external server, set up a standard websockets (there are many libraries for this, one of the most popular is
http://socket.io/#how-to-use ). The downside is that you'll have to manage and provision an external server.
4. As you stated in your post, Channel API can get unstable if held open for long periods of time, so just force the opening of a new sockets periodically (you can do so by setting the duration_minutes argument in create_channel() function to a low number. Play around, see what works for you). Probably the best option.
I will note that the company I work for uses all of these methods (in different apps, of course!) in production applications, and they work quite well for us.
-----------------
-Vinny P
Technology & Media Advisor
Chicago, IL