I was just wondering if the weaknesses quoted below could not be overcome by something like:
1) takers provide multiple receive addresses. say a random number between 5 and 20.
2) total output payment is divided up randomly and sent to these addresses.
3) each payment is time delayed by a random amount between 60 seconds and max secs, where the taker can define max secs.
Privacy is a multi-faceted idea. I don't think CoinJoin or JoinMarket entirely solve the problem. A single CoinJoin does nothing to help with time-based or amount-based privacy invading, because the deals happen apparently instantly, and if you send in an amount of bitcoin you'll get back out that amount minus fees.
I may not be fully understanding your suggestion, but I believe the tumbler.py already does something like this. Here is the (current) info from the help file, as pointed out by Adlai:
Sends bitcoins to many different addresses using coinjoin in an attempt to
break the link between them. Sending to multiple addresses is highly
recommended for privacy. This tumbler can be configured to ask for more
address mid-run, giving the user a chance to click `Generate New Deposit
Address` on whatever service they are using.
I didn't post all the parameters the help covers, but multiple receive addresses, and random timing of transactions are some of the options available.