I have been doing some mixing on Mainnet with Dash Core version 0.15 and i noticed that mixing slowed when wallet reached about 90% of my target amount.
Wallet did not find any other people to mix denomination 10.0 with
all night, it had absolutely no problem mixing with denominations 0.001, 0.01, 0.1, 1 (which most likely formed that 90%). I noticed this same behavior in v0.16 release candidate 2 on Testnet, the first 90% goes smooth and fast, but then the mixing slows considerably. I suspect (but i am not sure) that denomination 10.0 caused the slow down there as well. Although conditions differ considerably between Testnet and Mainnet.
With regards to mixing on Mainnet i suspect many users simply mix with lower then 10 Dash amounts, which means denomination 10.0 is not mixed that often.
Link :
https://dashradar.com/charts/mixing-transactions-per-day-by-denomination (denomination 10.0 is used considerably less, then denomination 1.0)
https://terminal.bytetree.com/dash (Average Median Transaction Value is about $6)
Is it possible to introduce some kind of check into a user mixing session, which keeps on eye on denomination 10.0 and when that denomination is not getting mixed for a long period of time, it will break the 10.0 denomination down to smaller denominations ? (denomination 1.0 for example). To be done through a special PrivateSend Create Denominations transaction (one that excludes denomination 10.0).
I rather have the wallet continue mixing in a smooth and fast way with the smaller denomination amounts, then have the wallet waste a lot of time trying to mix with a denomination it has difficulty finding a match for on Mainnet.
A switch to smaller denominations in the specific situation that the wallet can't find a match for denomination 10.0 for some time, could speed things up on Mainnet for mixing larger Dash amounts (a few hundreds of Dash).