Haskell, 100100 63 bytes
For inputs that don't converge (eg. -2) this won't terminate:
import Data.Complex f x|l<-iterate(x**)x=fst$dropWhile(\x=until(a,b)\a->magnitude(a-bx**a)>1e<1e-6)(zip l$tail lx**)!!0x Try it online! Thanks a lot @ØrjanJohansen for teaching me about until and saving me 37 bytes!