(response is late, but the question's relevance never goes away)
I was faced a similar problem and wrote a web based application.
https://jefferey-cave.gitlab.io/miss/
I was teaching in javascript and python, so those are the languages it handles. It does not handle C/C++ (currently). I'd be curious to see how the Javascript interpreter handles C.
available on gitlab
The problem I was faced with was it being illegal to submit student code across international boundaries (MOSS was forbidden) so needed something that would run locally. The implementation is pure client-side browser.
Interestingly, I think it may satisfy your "low false positive" criteria in a unique way. There is always some similarity between the assignments, but uses a unique technique to identify the point things "start to look suspicious".
I found it more useful in determining group dynamics in the classroom (who is working/studying with whom).
It has some fun live graphics, so it was useful to show to an Undergrad class after they submitted their first assignment. There was always a high degree of similarity in the first assignment, so no harm in demonstrating it live (with the submission names anonymized).
I always tell the story of the student I thought was (grossly and blatantly) cheating. Their work showed remarkable similarity to another student's very unique answer. Comparing the student's work to the rest of the class showed no significant similarity relative to the rest of the class. It was well below the threshold of "interesting". This led to a deeper investigation of the submission ... turns out there had been an tutorial, and the style showed through, but the work was unique.
Nothing happened, and those students never found out how close they came.