But it doesn't have a long vowel AFAICT. How does that work?
It's syllable length as a whole that counts, not just the vowel. Sweart has a long stem because it ends in two consonants. A short stem ends in at most one consonant preceded by a short vowel, anything else is long.
Another way to look at it is to imagine how the syllables are divided up when the neuter plural ending -u is added. A syllable is heavy when the vowel and anything following it together make up two "moras":
ēas-tu = 3 swear-tu = 2 gō-du = 2 cwi-cu = 1
The ending -u disappears when preceded by a heavy syllable (more than one mora), so the end forms are ēast, sweart, gōd, cwicu.