I can second the stated opinion that Python per se is stable enough. We deliver production systems running 24/7 with uptimes counted in several months and from what I can see, compared to the OP's app, ours is vastly more complex.
The only Python-related issue we have encountered so far, wrt to stability, is how timers are working. Extensive creation of timer threads have locked up after some indeterminable time. We found that the issue was probably related to some update in Windows at the time. We do not know whether this issue is resolved (we encountered it back in Python 1.4) and we rewrote our code to use timers differently. I also second that partitioning the solution in working (server) parts and GUI (client) parts is important. I do not second the generally outspoken distrust in Windows. Indeed, I would prefer *nix/*nux but in our case, stability concerns is not one of the issues behind that. We use threading to a certain extent (in addition to partioning into processes). One approach we have, and have shown very useful to gain stability, is to use Exception handling carefully and extensively. We catch *every* exception, report and counteract but do not allow the process/thread to die. This is not a trival approach, by no means, but when one know the app sufficiently, it can be applied with good results. Just my 2 c //Maria -- http://mail.python.org/mailman/listinfo/python-list