If you sign before the season ends, he will sign a 3 year contract.
If you sign at the start of next season, he will sign a 2 year contract.
So, the length is the same either way.
But sign him next season after his contract expires because the signing bonus will be less.