As I understand the USB protocol you absolutely cannot do what you are trying to do. It is exactly this kind of thinking that USB was designed to eliminate. If a USB function (their words, not mine) can "hear" activity on the bus then it must respond even before it has been assigned an address. If it cannot correctly hear the results of its actions then an enpoint(their words not mine) needs to STALL. In terms of the two devices correctly enumerating(their words, not mine), what is the problem with having both devices active at the same time but with different addresses assigned by the host. One device could remain idle while the host conducts business with the other one.
If you still feel the need to do switching, which I must confess seems dubious at best, in addition to holding one or more chips in RESET you may wish to consider switching VCC to one or both chips. You do need to worry about the off-state impedance of things connected together, but the current approach is problematical as it is.