"Travelling" is not wrong and "Travelling" vs "Traveling" is a "British English" vs "American English" thing as well-explained in the linked Wikipedia article:
The British English doubling is used for all inflections (-ed, -ing,
-er, -est) and for the noun suffixes -er and -or. Therefore, British English usage is cancelled, counsellor, cruellest, labelled,
modelling, quarrelled, signalling, traveller, and travelling.
Americans typically use canceled, counselor, cruelest, labeled,
modeling, quarreled, signaling, traveler, and traveling.
I think the linked article, "Why do some words have double consonants while others have only one?" seems to be a good starting point. You have to get yourself familiarized with all those examples.
It is important to note that, in two-syllable words such as happening or entering, etc.
If the stress is on the first syllable, the word gets only one
consonant + -ing.
"Travelling" is an exception. There is no rule but has some exceptions.
Based on the pairs chalk, bald and chalk, milk, the identity of both the consonant following the L and the vowel preceding the L could affect whether the L was lost. I'm not certain why, but my guess is that it's related to a more general pattern where only a restricted number of vowel sounds are permitted before syllable-final consonant clusters ending in labial consonants like /p b f v m/ or velar consonants like /k g/.
K is a non-coronal consonant, while D is a coronal consonant
It might seem odd to group all of the above consonants together, but they all can be categorized as "non-coronal consonants". Coronal consonants are the class of consonants made with the front part of the tongue: dental or alveolar consonants such as /t d n s z θ ð/, and also the postalveolar consonants /tʃ dʒ ʃ ʒ/. The most common consonant sounds in English fall in the category of coronal consonants, and many non-syllabic suffixes, such as /d/~/t/ and /z/~/s/, consist of a coronal consonant.
For whatever reason, many English vowel sounds can be found before a consonant cluster in syllables ending in a coronal consonant, but cannot be found before a consonant cluster in syllables ending in a non-coronal consonant.
For example, syllables ending in /st/ can have a variety of diphthongs or long/"tense" vowel sounds: Christ /aɪst/, toast /oʊst/, oust /aʊst/, taste /eɪst/, hoist /oɪst/, east /iːst/ roost /uːst/.
In contrast, syllables ending in /sp/ or /sk/ are not found with diphthongs like /aɪ/, /aʊ/, /oɪ/, /oʊ/ or /eɪ/, and are only occasionally found with monophthongs that can be considered "long" such as wasp and (one pronunciation of) Basque.
Syllables ending in /nt/ can be found with /aɪ/ (pint) /aʊ/ (count) or /eɪ/ (paint); syllables ending in [mp] or [ŋk] cannot (except for in some accents with a sound change of /æ/ to /eɪ/ before [ŋ]).
So I think there may actually have been a two-part sound change in Middle English, rather than an immediate vocalization of [l] to [w~ʊ].
First, a and o before a consonant cluster starting in [l] were diphthongized to something like [aʊ] and [oʊ], respectively. This would create Middle English forms like [waʊlk], [saʊlt], [foʊlk], [boʊlt] from earlier [walk], [salt], [folk], [bolt].
Then, to get rid of the ill-tolerated sequence of a diphthong followed by [lk] (a consonant cluster ending a non-coronal consonant), the consonant cluster was simplified by dropping the [l] (at least in some accents), resulting in [waʊk], [saʊlt], [foʊk], [boʊlt]. But the consonant clusters [lt] and [ld] were maintained after diphthongs because they end in coronal consonants.
In Modern English, the Middle English diphthong [aʊ] turned into a monophthong with different values in different accents. (The Early Modern English value is sometimes reconstructed as [ɒː].)
Vowels other than a and o, such as in bulk, hulk, milk, silk, elk, were apparently not diphthongized in this context, so the consonant cluster [lk] remained intact.
words with "l" followed by a labial consonant
Something similar would have occurred with [lf] [lv] [lm]. As with /lk/, we see no simplification of these clusters after e or i: elf, shelf, shelve, elm, helm, film and so on contain /l/. Wolf represents Old English wulf with respelling of wu- to wo-.
Words with "al" followed by a labial consonant show complicated developments. In some accents, such as British "Received Pronunciation", the al in words like half, halve, calm is pronounced as /ɑː/. This is not the usual outcome of the Middle English diphthong [aʊ], and it suggests that these words might have undergone an additional sound change, like [kalm] > [kaʊlm] > [kaʊm] > [kɑːm]. A change of [aʊ] to [aː] in this context might have been motivated by the fact that [ʊ] and labial consonants are both rounded, so the roundedness of [ʊ] might have been misinterpreted by a listener as just being part of the following consonant sound.
In American English, half and halve typically have /æ/, which could be the result of simplification of [aʊf] to [af] without lengthening. Something similar may have occurred in words such as laugh(ter) and draught/draft. Calm has a large variety of realizations in American English, some of which include an /l/.
For some reason, the word scalp (with p) shows /ælp/ in Modern English. I'm not sure how to summarize other words ending in -lp such as palp, gulp, pulp, poulp.
Other words I don't know how to summarize: gulf, golf; -olv- words like solve revolve etc.
words with "silent l" followed by a coronal consonant are irregular
Tchrist's answer mentions a few words spelled with LD that are pronounced without an [l] sound: could/should/would and for some speakers solder. I don't think any of these are related to a regular sound change.
Solder, a word with many pronunciations (including some with [l]), comes from French which had its own sound change of l-vocalization that applied before any consonant. The L was restored in the spelling and for some speakers in the pronunciation.
Should and would are probably cases of irregular loss of a consonant in a commonly used function word. For comparison, the consonant [k] has been lost in the past tense made of the common verb make; this is not part of any general pattern of [k] being lost. Could is an unetymological spelling by analogy with the spelling of should and would.
Best Answer
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.