I wrote my own ability system a while back to get around this annoying crap. It allowed you to define a dynamic Hotkey between A to Z, play any animation (customized to your liking), and have your own Cast Point on a per ability basis. Keep in mind that this was built with the intention of using your own custom abilities instead of the native Blizzard abilities. A Dummy unit could still cast the native abilities though so it's not like you couldn't make it work.
For the hotkey stuff I created 26 abilities based on Channel, each with a different hotkey from A to Z. Then I triggered the fields of these Channel abilities using the "new" Ability Field natives to adjust Casting Time, Targeting Type, Cooldown, Mana Cost, Cast Range, and Area of Effect on the fly. I basically made an extension class for Abilities and Unit-Types which helped define these settings so I could easily get the needed information.
So just for example let's say my custom Dragon Knight Hero has a model which uses animation index 5 for it's Spell Throw animation. I would define this in my extended Unit-Type class for the Dragon Knight. Then my custom Flameblast ability would be coded to have settings like Spell Animation Type = Spell Throw. This ability class and the unit-type class communicate with one another to produce the desired results, telling the DK to use animation index 5 when playing it's cast animation for this ability. Animation timescale and other settings could also be applied here.
Casting Time was used to mimic the behavior of Cast Point. The Channel ability automatically animation cancels, meaning it skips the Cast Backswing animation, which was too annoying to fix so I just considered it a feature.
I believe I was using the "A unit begins channeling" Event to detect the initial casting of the Channel ability. Then I used a Timer that lasted X seconds, where X was the Cast Point of the Ability you're casting (again, referring to the extended Ability class). If the unit interrupts this process by cancelling the channeling early, I simply destroy the Timer and nothing happens. If the cast is successful, I proceed to run the ability "starts the effect" function which contains the actual effects of the ability.
I think a system like this is pretty useful if you're interested in gaining full control over ability casting. It fits well with a MOBA or RPG type of map where you control a single Hero, although I don't see why it wouldn't work in any kind of map. Also, there may have been other workarounds involved, I'm not entirely sure if I was able to get Targeting Type to work or not, my memory is a bit foggy on the matter.