If someone else signed him, would the Mets would no longer owe him money?
Only if some other team picked him up on waivers.
Once he passes through waivers, the Mets will owe him his full contract, minus whatever the contract is he signs for with the next team.
So, lets say they owe him 20 million... and he passes through waivers, and the next team signs him for say, 300K, the Mets would now be on the hook for 19.7 million instead of the full 20.