>> "This time, the new version will install alongside the old, so that users can run either."
If you're new version will run alongside the old version, and you'll be using different versions of TurboActivate (for example 3.x with the old version, and TA 4.x with the new version), then you should use different products or different versions in LimeLM.
>> "Part of my reasoning here is that users could offload their old product keys (for the old version) if they are given a new one - maybe I'm over thinking that bit."
If you're worried about that you could always set the number of allowed deactivations for the old version's product key to 0. That way they'll be able to deactivate their new key, but their old key is "stuck" to whatever computer it's currently on.
>> "What is the best practice here?"
Well, the most typical use-case for free upgrades is to completely remove the old version and install the new version. This way there is less confusion for the end-user.
But it really is up to you.