I'm about to quote this Pieter Wuille's reddit comment, as I find it relevant:
Nothing is "sufficient" for privacy. It's a goal to work towards, but it is so multi-faceted that no single piece of technology can "solve" privacy.
1) Is this description about how coinjoin works correct?
Not exactly.
Wasabi uses ZeroLink, which is described here:
https://github.com/nopara73/ZeroLinkWhirlpool is based on a fork of ZeroLink; architecture details:
https://code.samourai.io/whirlpool/Whirlpool/-/blob/whirlpool/ARCHITECTURE.mdJoinMarket, as far as
this issue is concerned, doesn't utilize blinded signatures.
This P2EP (Pay-To-End-Point) proposal is also described here:
https://blog.blockstream.com/en-improving-privacy-using-pay-to-endpoint/1.1) If so, is there a way to prevent coordinator or takers from knowing the relationship between inputs / outputs?
There is, but there's no 100% effective zero-knowledge proof. For example, for n, the number of inputs, if a chain analysis company owns n-1 of the inputs, whether Chaumiam coinjoins are used or not, they can deanonymize that 1 input.