Others have also tried to port our makefiles to cmake and eventually gave up.
My own experience installing third party software is that cmake almost always fails in cryptic ways. Whereas makefiles usually work for me.
I'm pretty sure the bottleneck in our testing is because of dependencies, not because make is slow or bad at figuring them out.
Because the tests bring in high-level headers (like
prim/mat.hpp), any changes to any included file in
mat.hpp requires us to rebuild the world. I'd be surprised (but very happy!) if another system could get around this in a cleverer update only if the things you use in a header change, not if the header itself changes.
Another reason things are so slow is that Stan's largely header only and the template metaprograms are very slow to compile.
A third reason is the combinatorics in the probability functions. We're not comfortable with fewer tests because the underlying code can branch on any of the distinctions in input type to have different behavior. They've saved us on many occasions.