If what you're saying is true, say I had a 50% crit rate. I could then wait for 4 non-crits in a row and then use a trinket because the next 4 must have a higher crit chance to make it even out to 50%. It just doesn't work that way.
I'm not sure you understand how compute-intensive the type of system you are suggesting implies. It might not be too difficult for you to try and mimic the behavior, but imagine doing this in detail for thousands of users while performing all the other server calculations as well. This is precisely why internal cooldowns are used instead. The implementation is a much simpler concept, easier implementation, and faster performance. Otherwise there would be no reason for them to exist.
If the predictions are wrong, it's not just a matter of saying oh-well. Not performing a shift because you're expecting a proc to come and it doesn't will lower your damage. If the proc actually does happen and you shifted, you simply get the energy after the shift rather than instead of it.
Btw, cat GCD is 1 sec, not 1.5. Also, the energy difference you posted is due to the threshold you used for when to shift and starting energy. I don't understand what it has to do with the current discussion.
Yes, I would say, if you crit 4 times in a row, you have a reduced chance to crit on your remaining swings, assuming your local average is within some window near the target crit rate. However, 50% is far harder to predict than 4%.
HHHHH HHHHH CCCCC CCCCC = HHHHH CCCCC HHHHH CCCCC == HCHCH CCHCH CHHCH CCCHH
1/.5 = 2 (overall distribution looks like 1H : 1C)
HHHHH HHHHH HHHHC HHHHH = CHHHH HHHHH HHHHH HHHHH == HHHHH HHHHH HHHHH HHHHC
1/.04 = 20 (overall distribution looks like 19H : 1C)
So if I get a bunch of H's, I know that to stay within the window, eventually I'll get a C in "small n" time (or a reasonable amount of samples).
You can implement it in a few lines of code:
-- retain a moving average
-- if you deviate too far from the target mean, apply weighting to return to the desired target window
Sorry about the GCD thing, and I think I see your point since 20 energy will always put you over threshold. Let me play with this a bit more.