If you look at the corresponding deployments on Goerli, you will probably see a similar gas amount (but price per gas (e.g. price in gwei) on mainnet is much higher, which is the why you see a difference in actual ETH used).
In terms of your deployment, you would first need enough ETH to cover the gas costs to deploy the remaining proxy contract that was not yet deployed. Funds were not lost because your two deployments above will be reused if you run the script again (as long as you did not delete the network files for the plugin). The plugin will reuse the implementation contract and proxy admin addresses that were deployed above, and then just proceed to deploy the proxy contract itself.
So in summary, I would suggest the following steps:
Commit the network files (mainnet.json) to source control as a backup.
Verify that .openzeppelin/mainnet.json contains an admin entry with the proxy admin address from above (0xD1Efc239FBaa191009FdC6B575f4162d1F2041D1) and an impls entry with the implementation contract address from above (0x0d29e6fF0c7EeA972F629E65e74Ee527e9B5e12C).
Add enough ETH to your wallet to cover gas costs for deploying the proxy contract.
Run your Hardhat script again. The plugin will reuse the two contracts above (it will not redeploy them), and then will just proceed to deploy the proxy contract itself.
Thank you for pointing out those transactions. Those are both actual proxy contracts, not implementation contracts. The implementation contracts were deployed earlier.
One last question regarding insufficient funds, if the total gas needed for to deploy then is 3,744,947 and we multiple that by 23 we get 0.067382 ETH needed to deploy.
However, when looking at my wallet it looks like it had around 0.09 ETH.
It should have been implementation contract (3,260,927) + proxy admin (484,020) + proxy contract (around 680,000 according to your Goerli transactions) = 4,424,947 gas. 4,424,947 x 0.000000023 = ~0.102 ETH
But as of now, only the proxy contract is remaining to be deployed.
If I have since deployed my contracts to goerli in the same directory can I still re-run the deploy script for mainnet to finish deploying?
I see 0xD1Efc239FBaa191009FdC6B575f4162d1F2041D1 and
0x0d29e6fF0c7EeA972F629E65e74Ee527e9B5e12C in my .openzeppelin/mainnet.json but wonder if something else got overriden from goerli deploy.
Making sure I just need to add ~0.03 ETH instead of the full 0.102