Agents would like to multi-task, but cannot chat and talk on the phone at the same time.
The only way I found to do this is in the CCE plugin is to keep track of the active voice call, then when the chat gets answered you unhold the voice call when the StationCallChanged event is fired for the chat.
You also need to configure your chat to automatically drop the phantom call. this will free the line apearance so that when you call xMLStation.CallUnhold(); the voice call gets put back on the line and it is the only call apearance showing.
The result is that you get about .1 to .2 seconds of hold music during the conversation. If the customer is the one talking when you pickup the chat they really don't even notice.