If you are running a print from a USB drive and use CuraLE to connect to the machine during a filament run-out on toolhead 2, it sometimes switches to toolhead 1 when connecting. If you then resume the print, it will continue running where it left off in the toolhead 2 code using toolhead 1. Had this happen once when connecting fresh, and once when just opening console while connected after having been in the prepare section of Cura while the print was running.
FYI, the commands used for pause and resume with the filament detection are M24 and M25, respectively. I have tested and confirmed that sending a T0 or T1 command from Cura during that pause will indeed switch tool heads. I have also tested a little on this exact issue, and found:
Connecting/disconnecting/opening console does NOT do it
Switching from Prepare to Monitor while connected DOES do it
Disconnecting, switching to Prepare, switching to Monitor, opening console, connecting, and then closing console DOES do it
Disconnecting, opening console, connecting, closing console does NOT do it
So, it seems as though a T0 command is sent when activating Prepare, not on connect. But, it only seems to do so when the console history is empty or empty prior to the fresh connection. Switching to Prepare seems to clear that history.
I don't think cura should send a T0. I'm sure the intent was to make sure the correct nozzle was selected at the start of the print, but the T0 should be added to the start GCODE instead.