How can I execute a 3-way escrow with 1 unknown party?
Yes, P2SH seems to be the way to go here. If you do a redeem script like:

redeemScript: DUP HASH160 {B's pub key id} EQUALVERIFY CHECKSIGVERIFY 1 {c1 pub key} {c2 pub key} {c3 pub key} {c4 pub key} {c5 pub key} 5 CHECKSIG


Hash it and use the P2SH hash as the address. Then you could spend this output with a scriptSig like:

scriptSig: {any one of c1-c5's signatures of the transaction} {B's signature} {redeemScript}


I'd do some testing with these on a testnet network before doing this for real.