Thanks Kimklas. I would add the auto-logging code instead of manually copy and paste the log from the "run" window, so to have less interfere to the system. And yes the IB auto-logoff is not a disturbing factor since the code has been taking care of it. I think I should move on to let the machine running for a week and just observe how it's going.
Typically we don't log on the hot thread. We dump logging off to a separate process through shared memory. If you want to go in deep you can also set up a microservice arch. Never forget that the GIL in Python is a pain in the @$$; it effectively makes all processing single-threaded, including processes running in different threads. You must be intentional, and spawn a separate PROCESS, on a separate CORE, to really achieve concurrency.