Most grammar references that I have seen state that if a verb stem ends with m or n, and is not preceded with the consonants l or r, then in the Present Tense the 2nd person singular ending becomes -est, and the 3rd person singular and 2nd person plural ending becomes -et. But I see some verbs (kommen, kennen, schwimmen for example) where this is not apparently the case. Is there another rule that I should be aware of? Or is this an example of natural variability in the language and one must just learn these exceptions?
You misinterpreted this rule. Double consonants are a peculiarity of written German. They are used as a marker the previous vowel should be short. For speech matters —and that inserted schwa is just a matter of speech— they are single consonants. The reason for this schwa is avoiding hard to pronounce consonant clusters:
regnen → du regnest, ihr regnet (not: du regnst, ihr regnt)
atmen → du atmest, ihr atmet (not: to atmst, ihr atmt)
With vowel-preceded consonants, this isn't a problem:
klonen → du klonst, ihr klont (-onst and -ont are easy to pronounce)
stemmen → du stemmst, ihr stemmt (-emmst and -emmt are easy to pronounce)
Let's try with some verbs that don't exist (yet).
prülmen → du prülmst, ihr prülmt
sutmen → du sutmest, ihr sutmet. (How do you pronounce sutmst? Or sutmt?)
See how this works? The schwa is needed for pronunciation.