yieldControlToDDS (added here: #1092) currently checks if there is an existing client, and returns false if so.
In fact, DDS should only fail to start if there's an existing DDS instance. In the case of existing clients, the existing clients should be disconnected.
See comment: #2392 (comment)