I feel like far too much ink has already been spilled over this 'current NHL roster player for current NHL roster player' nonsense--you've never heard the term before because it's not a thing. It's cherry picking to make a point about 'inactivity' but that would only make any point if a current NHL roster player for current NHL roster player trade--henceforth to be known as a CNHLRPFCNHLRPT, since obviously it's a major measure by which to guage the health of an organization--trades are the only management activity at one's disposal.
Understandable, but it's hard for me to criticize the trade at this stage. I have no idea how much faith Cheveldayoff had in Danny Taylor, how much he wanted to get rid of Tangradi and his salary, how much Budaj's mentorship is being valued, et c.
Stuck with the old salary, for one season, which is the remainder of his contract.
Part of the reason the trade was made, from a Habs viewpoint was that Budaj was being paid enough that 1/3 of his salary would count against the salary cap, which matters a great deal to the Habs, but very little to the Jets.
I believe all NHL contracts are 'guaranteed', though there are outs written in that cover some things--if a player can't report due to criminal trouble, for example. I don't know how Kovalchuk got out of his, and more importantly how NJ doesn't see the cap hit for it.