Why do "able" and "haste" have long a's?
Solution 1:
In the case of haste, the general rule is that an E at the end of the word makes the preceding A (before 1 or 2 consonants) long. Paste has a long A, but past has a short A. Baste and waste have long A's, but fast, last, mast, and vast have short A's. Unfortunately (as often happens in the English language), there are occasional exceptions: caste has a short A.
Solution 2:
The first rule of English is that there are very few rules that are always kept.
English is a mongrel language with conflicting conventions of pronunciation. The best one can do is attempt to be consistent. And acknowledging that as a living language English will always be inconsistent. Quel dommage.