After some testing, head banging, testing, breaking things, testing some more, struggling to find out why some Linq methods are refusing to work, etc., I have found that this does help but is not quite working as needed...yet.
First, the Linq issue. using the .Take(count) as LE showed, never returned a Dictionary with a Count > 0. Commenting out the Take then returned all of the regions, in the OrderedBy format, items. In order to use the GeoCenter point and still pass both the Polyline and BaselineRegion objects in the Dictionary, I created a Class to hold those 2 objects. Perhaps the use of a Class object is causing this?
The next Linq issue is similar, in that I tried using this: var pair = pairs.FirstOrDefault(region => region.Value.polyline.IsPointInside(curpt));
which also never returns anything but an empty object.
Finally, after working through those issues and getting code which actually gets me a good KeyValuePair with the Polyline in which the cursor is located, it doesn't always get the one it is in. Due to the funky shaped nature of a Corridor and the regions that comprise it, sometimes the cursor may be close to 10 of the calculated Center points but none of those are the one linked to the polyline the cursor is actually in. Increasing the number of items in the Dictionary to loop through increases the chances of this always working, but also begins to impact the performance again. It is also still a bit slow when the cursor is not within any of the regions.
Since I am seeing a speed improvement with this approach, I think that going with the KD-Tree approach will likewise increase the performance. Off to try to figure out how to implement that.