I am not a professional teacher in true sense. Here the question is whether a or an will be used before 100. 100 is pronounced as hundred. The beginning alphabet 'h' is a consonant and sounds like a consonant. So the special rule i.e. if the beginning alphabet sounds like a vowel, we use an. If the same alphabet sounds like a consonant we use a. Example: an umbrella. a unit. an hour, a horse. So here since beginning of 100 sounds like a consonant 'a' will be used. As such "The company is a 100% ESOP company." is correct.
I'm not a teacher, but I agree with all you say, except, I have one addition:
I have previously come across conflicting directions with respect to the word "hotel" and whether it takes "a" or "an".
I decided to research further and came across the following interesting explanation from the English Grammar Book of EnglishPage.com, which, interestingly, ties the article to the stressing on the "h" word:
Usage Note: In writing, the form a is used before a word beginning with a consonant sound, regardless of its spelling (a frog, a university). The form an is used before a word beginning with a vowel sound (an orange, an hour).
An was once a common variant before words beginning with h in which the first syllable was unstressed; thus 18th-century authors wrote either a historical or an historical but a history, not an history. This usage made sense in that people often did not pronounce the initial h in words such as historical and heroic, but by the late 19th century educated speakers usually pronounced initial h, and the practice of writing an before such words began to die out. Nowadays it survives primarily before the word historical. One may also come across it in the phrases an hysterectomy or an hereditary trait. These usages are acceptable in formal writing.
"Hotel" has an unstressed 1st syllable and therefore would take "an" in the above situation.
I learn something every day when I tune into UsingEnglish.com!