Unfortunately your haste to hasted CD math [hasted CD=CD*(1-h)] is not correct. To see why, what does your math say if a character has 100% haste instead (or 110% haste, or any haste greater than 100%)? If a character has 100% haste (which is the same as being 100% faster, or in other words being twice as fast), a 1.5 sec CD will be hasted to .75 sec, not to 0.0 seconds or to negative seconds for haste>100%.
Instead, [hasted CD=CD/(1+h)], where h is your haste % in decimal form [like 25% <-> .25].
Thus, 1.2=1.5/(1+h) => 1+h=1.5/1.2=5/4=1+.25, or 25% haste, instead of 20%.
Also, to reduce a 4.5 sec CD (like crusader strike) to 3.0 sec requires 4.5/3.0=3/2=1+.5, or 50% haste instead [20% haste will reduce the 4.5s CD to 3.75s~either 3.7s or 3.8s], which is also the haste needed to reduce a 1.5 sec GCD to a 1.0 sec GCD.
One extra thing to note as well is calculated haste CD in WoW tooltips will only tell numbers down to the .1 sec digit, and it'll round numbers to a .1 digit number.