This is really neat, I wonder if there's a way to keep a "remainder" around, kind of like Bresenham's algorithm, so that you can always do aligned reads from memory.
The speedup on English text is really good, and I love the exploration into the AVX intrinsics.