Just how fast is the built in pathing thing?

I think this thread may have some answers. Usually you’d want to profile it in some way with a large number of trials, but the much easier alternative using time.time() each pathfinding call and printing out how long it took should give a good approximation. You should be able to run a suitable number of simulations with the existing pathfinder, but in comparison to a reasonable optimized simulator it’s “low hanging fruit” in terms of how slow it is versus how much you can optimize it.