it may work, but you would have a hard time pulling it off. relying on a user to follow directions is always a disaster waiting to happen
i have a different solution, especially since you control the entire environment from miner to stratum - a custom diff multiplier for the miner.
right now the 1080ti is the fastest card out. it hashes at about 50 mh and the sweetspot for that card is ,let's say, about a diff of 128, with 64 on the low end for fast blocks, and 256 on the high end for slower blocks. use that card as the "default" or a value of 1.
1070 hashes at about 60 percent of the speed of 1080ti (1), so it's multiplier will be 0.6. not sure what the 1060 hashes, but you get where i'm going with this - it would be whatever a ratio of it's speed/1080ti.
the miner knows a which gpu's are in there, and how many. you could get fancy and make a per-model table to be really precise, or just take the easy way out and go by hashrate - which the miner also, obviously, reports. if the default of 1 is 50mh, and the miner produces 80 mh, the multiplier is 1.6. Again, i'm not sure what the 1060 hashes, but let's say it's 15. an x6 1060 rig would report a hashrate of 90. 90/50 is multiplier of 1.8 etc, etc. etc.
this way you can have your diff logic walk the stratum through the range of diff of 64-256 only, and adjust on the fly when you have fast blocks. each miner will calculate it's own multiplier based on which type and number and type of gpu's it's seeing ("fancy mode") or hashrate and adjust it's own difficulty accordingly with the stratum.
i'm guessing that if you just change the difficulty on a miner, without adjusting the same on the stratum per worker, the miner will not submit valid shares. so you'll need to either implement this multiplier on the stratum per worker, or better yet - do it on a miner itself and just have the miner pass that info to the stratum. if each miner is a worker, it would be an ideal way to pass the exact performance of a rig to the stratum. this would also be really helpful if one of the cards on a multi gpu rig goes down, or throttles and miner hashrate goes down - the multiplier could adjust accordingly.
so let's say i have a x2 rig with 1 1080ti and 1 1070 or 80mh. the pool starts me off at diff of 128 (sweetspot for 1080ti or value of 1), my miner does the math and figures out that my multiplier is 1.6, multiplies the 128 by 1.6 and tells the stratum - set diff for this worker at 128*1.6=204.8. then a few minutes/hours later, the pool detects that the blocks are flying by and dumps the pool diff to 64. my miner does the math again, divides 204.8 by 2, and tells the stratum to set the worker at 102.4. pool goes to 256, my miner does the math etc. etc. etc.
usually it's the stratum that tells the miner to adjust worker diff and you could do this on the stratum side, but since you control both ........
i think, if doable, this would solve this particular problem permanently. and you could implement this type of a system across any algo you want - just figure out what you want the default to be.
Those are some nice suggestions there.