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.