As I understand, by artificially imitating common heuristics we can achieve a way greater level of privacy, an even greater one than that after mixing and conjoining. But what I am yet to comprehend is how exactly we can simulate it. For example, you mentioned a method when we redirect a change to a completely different address, the address that doesn't belong to our wallet. How can we do that? As far as I know, change addresses are generated automatically, have a special derivation path, and are usually hidden (Electrum wallet is an exception, though). In order to fool heuristics we should not choose our own change addresses and instead sent UTXO leftover to mixer address directly. How can we control that process if it is usually done automatically by the software we are using?
That's the reason why most tracing methodology assumes that the change address is always the same type as the origin address. Most users won't think of using it to their benefits as it's always done automatically.
If your software doesn't give you the liberty to have multiple outputs, then it's probably not ideal. What I would do with Electrum is that I would send the funds to the recipient and specify the mixer address as well with a random amount as a placeholder, go to the transaction preview, see how much of the amount I'm left with after the fees and adjust accordingly such that the change is not sent back to anywhere else. Or else, script your own raw transaction.
This is a unique way of approaching the problem and none of the wallets, AFAIK will allow you to set a change address that is not generated from the seeds. They do have a good reason of course and I think this method is quite unconventional.