So a chain of $\texttt{FFF}$ or $\texttt{333}$ would have a chance of 1 to $16^3 (4096)$
Actually, a chance of three repeated nybbles (be it $\texttt{FFF}$ or $\texttt{333}$ or $\texttt{000}$) would be 1 in $16^2 (256)$ - that happens because there are $16^3$ equally likely values of those 3 nybbles, and 16 of those patterns are repeats - hence the probability of a repeat is ${16 \over 16^3} = {1 \over 16^2}$. If you specify that they must be $\texttt{FFF}$ (and so $\texttt{333}$ would not count), you'd then get $16^3$; however that's not what you're doing.
For example in a set of 100k hashes I already have over 1k chains of 4 characters or more
That's about right - in 100k hashes, there are roughly 6,000,000 places where a string of 4 repeated nybbles might occur; any one place has a probability of $16^{-3} = {1 \over 4096}$ of being a repeat - a simplistic computation gives about an expected 1,400 strings of repeats.
I say simplistic, because this straight-forward computation ignores overlapping strings - for example, a string of 5 repeated nybbles would count as a run, not 2 runs of 4. In addition, the probabilities involved with overlapping strings are not independent. While these effects reduce the expected total somewhat, I believe that the simplistic computation is good enough for a back-of-the-envelope estimate.