but both the "My" and offset are returned to the calling function and sent to Point() in the end
To me it looks like only the
My is sent to Point() (there is a \[0] after the call, easy to miss):
return Point( curve, Mx, ECC_YfromX(Mx, curve, Aser[0] == 0x03)[0], _r )
The way of doing the square root seems to only work for 3 mod 4 fields. I have seen this in other implementations, too. A good explanation is here:
https://www.johannes-bauer.com/compsci/ecc/#anchor11My = pow(My2, (_p+1)//4, _p )