First we should remember things might differ between implementations. But in the version described here,
The signatures, one per input, inside a transaction are completely independent of each other. This means that it’s possible for Bitcoin users to agree on a set of inputs to spend, and a set of outputs to pay to, and then to individually and separately sign a transaction and later merge their signatures. The transaction is not valid and won’t be accepted by the network until all signatures are provided, and no one will sign a transaction which is not to their liking.
So to your questions,
So the transaction is fully constructed and broadcast to Bitcoin network by one node. Is there a delay in the network verifying the TX of any substantial time?
The transaction is constructed by a user, and then sent to all nodes they’re connected to. Nodes try to validate and, if it’s correct, they add it to their chain and rebroadcast.
Do users have to re-sign each time the UTXO’s in the TX change.
Correct. That’s the ‘failure risk’. If one input/output pair is rejected, everyone needs to update their signature.
Can that cause each UTXO in the TX to be locked up till transaction approves if the node were to constantly be rebroadcasting this CoinJoin TX?
Each tx has an identifier from the creator, so nodes don’t need to worry about duplicates.
If the same UTXO is included in two otherwise ‘valid’ transactions, a node will keep the older transaction (and rebroadcast) and reject the newer one (and stop rebroadcasting).