This can be solved at the wallet level: every wallet provider could in theory make the transactions of their custodial users into one big coin-join. For non-custodial wallets the challenge gets much bigger.
At the mining level one big coin-join pool is very difficult to make. Basically, you/your wallet should be able to securely exchange keys with all others users/wallets before submitting the transaction to the mem pool. I believe the MimbleWimble protocol works with one-big-coinjoin-per-block sort of system.