He must publish his signed transactions before he can cosign them, so everyone can see them.
But this is exactly the problem I'm trying to explain all the time: there is no way (without PoS or such a system, or PoW and blocks) to prove that he hasn't published all transactions and thus "misbehaved".
Nodes are independent one from another in a P2P network, there is
no global mempool which can compared with the "published" transactions. Every
nodesnode has his own mempool which differs from other mempools, because they query transactions one from another all the time and don't have the same "view".
To get a global view of the mempool, you need a system which decides which transactions are part of that global mempool. That can't be an open system, because otherwise all the time attackers will be trying to manipulate it.
If there was PoS for example, you could build a system where a node can only carry out transactions that also in the mempools of the stakers. AFAIK Obyte (formerly known as Byteball) works this way: it has no traditional blocks, but the stakers check all the time that the transactions in their mempools are not conflicting and go back to some "anchor" transaction, and thus they can rely on a system relatively similar to your "cosigning" protocol.
As soon as he cosigns one, the others are invalidated.
This also doesn't work, because of a similar reason. He cosigns the original transaction to the victim and then would wait until a big number of other nodes would also think this transaction is legit, so the victim sends him the value, asset or cryptocurrency he wants to steal.
Only when that has happened, he starts his sybil attack with the double spend transaction. This means the conflict arises
after the attacker has already stolen the good he wanted to steal (this is not different in a Bitcoin 51% attack, by the way). Now the network will try to resolve the conflict, but when the attacker has a high enough number of nodes, he can trick other nodes into accepting the double spend transaction. He is the cosigner of both (only with different addresses), so he can simply delete the signature of the first one on his nodes, and all other nodes the attacker spawned would pretend they have never seen that
nodetransaction. The address that co-signed the first transaction? This node simply disappears.
The most likely way to achieve this, as already wrote, is a botnet. Of course the attack would not be cheap. But if there is more value in the network than the cost of the attack, then it can (and will eventually) be stolen.