Guessing the percentage done is an estimate of how long it believes it will take by the reporting system. It could depend on ZFS space reporting and that is a bit complex.
Two other issues impact resilver & scrub time estimates:
After the resilver, (or scrub), stabilized the time for completion, a large amount of user activity occurred. ZFS was designed to perform as many tasks online as possible. So, user activity simply slows down resilvers, (or scrubs).
Fragmentation - It is not as much problem today as it was before sequential resilvers, but it still may have some impact.
I think there is a 3rd reason, but I forgot it at the moment. If I remember, I will add it later.
No idea about the cause of the negative time. Does zpool status show the resilvered drive(s) being error free or still resilvering? If you can it might be worth rebooting the server. If it hasn’t finished resilvering it should resume, hopefully with more sensible information.