Huh. keysValuesDo actually just traverses the internal array of the Dict (which I had no idea it had) instead of actually accessing the values with keys. Crazy. Still, Dictionary with that many elements is not wise.
Where I am at with this is:
KDTree with 1.25 million elements actually works! But it is a bit pokey some of the time and great some of the time. As in, some inquiries are responded to quickly and others take a hickup moment.
For me, exactness is not the issue. Speed is. So, I have randomly placed the 1.25mill elements into 100 KDTrees. Then I just ping one of the KDTrees at random for my NN, which will hopefully be “good enough” at timbre mapping inputs to complex synths.