The issue with Hossa was the 39M salary cap.
Hossa for Heatley was a cap trade because Heatley was an RFA who was going to be cost controlled at a lower cap hit. 1.5M doesn't sound like a big difference, but when you consider the cap ceiling that's like the difference between an 11.XXM player and an 8.XXM player now. It wasn't a hockey trade in that they were only moving Hossa just because Heatley was available. They were moving Hossa because they couldn't fit him under the salary cap, and Heatley would cost less.
You're probably looking at trading Alfredsson or something to keep Hossa. There weren't a lot of options because even if they found a way to sell off 2-3 core pieces for pennies on the dollar to afford Hossa's salary over Heatley.
The reality is, there was no real right answer. The Senators were screwed with the timing of the lockout and salary cap. The early salary cap was very restrictive, and it isn't as if player contracts were signed with some sort of established norm about how each player should fit into the salary cap. Look at our projected 2004-2005 roster, and consider the status of each player (RFA, UFA, etc), if this was anytime between 2010-2024, a franchise would not have an issue keeping most of that core together under the cap.
The cold hard truth is that if Hossa took a 2-3 year discount to keep the core together, the Senators could have more than made it up to him on his next contract because at that point the salary cap rose, and GMs figured out how to circumvent it with back diving contracts. I don't believe players should feel compelled to take discounts, but the Senators were not being unreasonable. They had little control over the situation and had to figure out how to keep as much of the core together as possible under a very restrictive salary cap that they never planned for when they signed their original contracts.