sgmii auto negotiation - how long should this take?
It should happen very quickly and without the need for all that manual retrying.

For debugging signal integrity, or if you only want to run 1G, you can turn off SGMII at run at a fixed 1G rate. SGMII is only needed when you want to do tri-mode 10M/100M/1000M negotiation over copper, as its purpose is to relay the copper negotiation status over the 1G serial link and handle the difference in bit rates. I'm not familiar with Microsemi, but for example Xilinx's Ethernet core offers both SGMII and 1000M-only options, so I'd guess that Microsemi has something similar. And the PHY will almost certainly have those options available via register settings as well.