All this is not to say that the given stats are good or well handled.
Crit was made weirdly quadratic for no reason other than to curtail its gameplay effects (which have since been removed from all but Monk anyways), rather than simply expanding the value of crit (see initial Greater Ruin procs, for instance) on jobs other than Bard (via River of Blood and then Repertoire) and later Monk (via Deep Meditation), and Haste has been only had a fragment of a bandaid applied to it, instead of any actual polish.
But, as presently implemented, Tenacity, Piety, and Direct Hit are not a solution. They're not even an improvement over just having Crit, Det, and Haste (merged SkS/SpS).
Ideally, I'd rather focus on the problems inherent to present Crit and Haste (i.e., SkS/SpS) directly and then work from there.
CRITICAL HIT
Simplify it back to affect only chance, of a flat 50% throughput bonus, but have any chance in excess of 100% multiply the effect of that chance by that excess. A 120% chance of that 150% damage crit, then, would instead become a 100% chance of a 160% damage crit. Similarly, a 125% chance of a 20% mitigation parry would instead give a 100% chance of a 25% mitigation parry. Etc., etc. No anti-synergy with auto-crits.
HASTE
Create a roll-over margin or percentile for (de)buffs in order to expand available Haste tiers and reduce the stat's finnickiness (especially in situations that may have non-integer GCDs of downtime). This margin could be, say, a flat 3 seconds, the final 20% of the duration, or an average between the two. Personally, I'd just go with, say, 16.7% (one sixth), as that would allow this to actually make a difference for SAM and DRG (up to 10 seconds on Higan, 5 on healer DoTs, 3 on Demolish), while remaining reasonable for lower-duration DoTs.
Within that period, the remaining duration would be added to the early replacement. For instance, if I use Demolish, normally 18 seconds in duration, with 2.5 seconds remaining, that replacing Demolish would be 20.5 [18+2.5] seconds. This both makes the early replacement not a waste and allows greater rotational options to that player.
- This leaves an exploitable mechanic, for better or worse, which could be resolved if we prefer. Under that simple implementation, one would be incentivized to potentially replace early any DoT that cannot be replaced multiple times within a given buff window; one might clip Demolish up to 3s early as the first GCD of Riddle of Fire, for instance, if they for some reason could not also end the window with a Demolish. Similarly, a HoT-based healer might pre-cast HoTs a bit before their major CDs in order to effectively get an extra tick on each. However, given that such alignment so rarely appears with any significant value on DPS, and the healing bonus would almost certainly not be worth any pre-HoT not already worthwhile, this should be negligible and, I would think, not worth the additional complexity to assess the difference in strength between any two instances of the same over-time effect.
After that, it's just a matter of slightly scaling the value of those stats on a per-job basis in order to ensure that all three remain decently competitive options (perhaps with Det fairing faintly worse on paper than the two more gameplay-affecting stats)... if even that. Alternatively, we could just accept that BLM, SAM, and MNK may be intended to play at higher Haste thresholds. Nonetheless, those thresholds would at least be far less finnicky now than previously the case.
___________
Finally, there are more "out-there" but nonetheless simple improvements we could apply:
For instance, imagine if instead of each piece of gear giving a higher amount of one secondary stat and a lower amount of another, they just each listed the two secondary stats, the total amount of which would be equal to their item level (with each point's value being increased to compensate, of course). The choice of which of those two secondary stats we favor, and to what degree, would be left to the player, essentially via just a few sliders for the overall gear set.
Let us say the most repeated secondary stat across my gear is Crit, followed by Det, and then Haste. And let's say I, for whatever reason of playstyle preference (big, rather than frequent crits, but certain GCD thresholds) want the opposite: Haste (up to a certain high point) > Det > Crit. I'd just press the up and/or down arrows to the side of the sliders until they're ordered Haste > Det > Crit, push my Haste slider along until I get the GCD I want, then max out Det; the remainder (any Haste/Crit pieces not spent toward getting my chosen Haste threshold) would naturally fall into Crit. Done. I have the GCD threshold I want, and complete control over my secondary stats.