'Alright, after multiple tests, I've figured out what will cause it, but not why it happens exactly. It completely depends in what order you get the three stealth damage perks (Mister Sandman, Cloak & Dagger, Ninja). I'll list out the outcomes I've found:
Sandman 3, Cloak, Ninja 3 = 6.3x
Sandman 3, Ninja 1, Cloak, Ninja 3 = 5.9x
Sandman 3, Ninja 2, Cloak, Ninja 3 = 5.9x
Sandman 3, Ninja 3, Cloak = 5.9x
Ninja 3, Cloak, Sandman 3 = 6.3x
Ninja 3, Sandman 3, Cloak = 6.3x
Cloak, Sandman 3, Ninja 3 = 6.3x
Cloak, Ninja 3, Sandman 3 = 5.4x (!)
I have 10 extra perk points, so this was all done via actual perk placement rather than using console commands, but I was adding Cloak & Dagger via console. I ran these multiple times. I also leveled two different ways: once doing all the leveling in one go, and once by leaving the pipboy between each rank of each perk; the results were the same. I'm not sure what exactly causes it, but it's probably some sort of error with the multiplier.'
From breaking it down it seems that the problem is to do with what figure Deacon's perk takes to add 20% on. I got Deacon's perk last, for example. Without a silencer I'm doing 3.9x, which with 50% increase equates to 5.9x rounded up. In order to get 6.3x Deacon's bonus needs to be applied to the 3.5x multiplier for ninja which gives a 4.2x effect, adding 50% for mister sandman gives 6.3. So it looks like Deacon's bonus is being applied only to the base level of sneak (2x + 20% = .4 gain which equals 3.5 from ninja level 3 + .4 = 3.9). Mister Sandman is then working correctly. No idea what's causing this though because I got deacon's perk last. It also fits with my pre-Deacon damage output of 5.3x (rounded down).
There also appear to be issues with stealth attacks for melee builds as well.