Ok another tests confirms that with two executables both cameras can stream at the same time. So it appears the ZWO SDK has multi-threading issues making it unable to stream. Now that the problem is identified, the solution is not easy. The current driver inquires about connected cameras and then create an instance of each. This appears to be working fine for everything except streaming apparently. Creating a dedicated driver for each camera can be done in perhaps these methods:
1. The main executable detects which cameras are connected, then spawns separate process for each camera. These processes have to be connected back to INDI server via this shim in the middle. Requires quite a bit of work.
2. Make camera provide a list of detected cameras and only connect when the user selects and press connect. This could be saved in config so that next time the driver is executed it loads from config and tries to connect automatically. However, this has a limitation since the driver label cannot be dynamically changed after connecting to the camera (like SBIG CCD camera driver for example). So maybe we can add "ZWO Primary Camera" and "ZWO Guide Camera" labels and these names would stick.
I'm afraid I can't contribute much to the discussion other than report what happens here. Today I installed a high performance computer as an Indi server at the scope. Now the 294 can stream without issues while the 294Pro is connected. What's more, I was able to stream from the 294 and take photographs with the 294Pro at the same time.
I then tried to stream from the 294 and start another stream from the 294Pro. What happaned is when the 2nd stream started the 1st one stopped. When I closed the 294Pro's stream window (stopped the 2nd stream), the 1st stream (294) continued instantly.
I tested 3 distinct computers as Indi servers. Two had issues with the 294 streaming while the 294Pro was sitting idle. The stream did freeze and the two cams were lost in lsusb. The third server did not produce any freezes even with one camera streaming and the other one taking photographs.