I can terminate my USB2 connection as you suggest here. However, that will not allow a valid connection since I still have "[Currently Open]" on by USB1 connection. If I terminate my USB1 connection then I can make a correct USB2 connection. This is the situation that I described in my original post.
When using a single board environment (so only USB1 exists) there is no need to terminate the USB1 connection. I don't understand (other than an IDE bug?) why I need to terminate USB1 connection before I recompile/reconnect a USB2 connection.
Situation 1 - USB1 disconnected, USB2 disconnected
I can freely connect to USB2
Situation 2 - USB1 disconnected, USB2 connected
I can freely connect to USB2. Situation 1 and 2 mean I can always re-connect to USB2 if USB1 is not connected.
Note, although I have "[Currently Open]" on USB2 (and importantly, no such text on USB1) I can connect again without the need to terminate my USB2 session. This is equivalent to a system with only a single board, a user can connect a debug session, edit code, then re-connect (which forces the recompilation, an automatic termination and then download to FLASH/RAM).
Situation 3 - USB1 connected, USB2 disconnected
I cannot connect to USB2. The USB1 has "[Currently Open]" but not the USB2 session.
This means that I must connect to USB2 first.
Situation 4 - USB1 disconnected, USB2 connected
I cannot connect to USB2. The USB1 and USB2 both have "[Currently Open]".
Note, to get into this situation I would have connected to USB2 then connected USB1.
I repeated the tests but swapped around the USB cables to the boards. I got exactly the same issues as above; the board connected via USB2 would never connect if the other board (USB1) was connected . I conclude that the issue is related to the USB port settings and nothing special with either of the boards. However, I don't know what I can do apart from my (very annoying) workaround of disconnecting USB1 session before recompiling/reconnecting my USB2 session (and then having to reconnect USB1 session).