This seems to work:
DynamicModule[{pt = {0.5, qgHSZ[.2]}, from = .2, x},
{Graphics[{Dynamic[Line[{{from , pt[[2]]}, pt}]],
LightBlue, Opacity[0.9], Polygon[pts],
Locator[
Dynamic[pt , (pt = RegionNearest[Polygon[pts], #];
from = x /. NSolve[ qgHSZ[x] == pt[[2]], x][[1]]) &]]},
Axes -> True, AspectRatio -> 1], Dynamic[pt]}]