I took a look at the code that I started with and... it is kinda horrible.
https://github.com/AnykeyNL/Quincy/blob/master/coordcalc.py#...
There is a loop in a loop that goes through all the possible values of x and y to find the correct ones. No wonder it's so slow!
The scipy solver - inspired by the original article, I used https://docs.scipy.org/doc/scipy/reference/generated/scipy.o... - isn't much faster though (from reading the docs, it's just a smarter random search).
I guess it's time to learn some linear algebra (again!) and create a custom algorithm.