I've always believed that:
--Michael never gave an enemy a pass, and that would include Fredo;
--If he had been wavering about giving his brother a pass, the wavering stopped after Fredo's outburst in the boathouse. With such deep-seated resentment of Michael shown in such fury, it'd be hard for Michael not to conclude that Fredo might have found another opportunity to do Michael in.
--Fredo might have bought himself a pass if he'd told Michael that he knew Questadt belonged to Roth, and/or that Pentangeli was alive. Why didn't Fredo tell him? Two possibilities: He was too dumb to see the opportunity; or, he was afraid that doing so would reveal that he was in deeper with Roth then he wanted to admit (hence that BS story about "I swear to God I didn't know it was gonna be a hit...Johnny Ola bumped into me in Beverly Hills..."). If you accept that he was in deeper, you might be more willing to accept that he deserved to die.
An anomaly: After Havana, Michael asked Tom where Fredo was. Tom said he must be in New York. Michael told Tom to "get word to him..." After the Senate perjury trap (probaby months later), Michael told Tom, "I wanna talk to Fredo." So, Fredo's whereabouts were known all along. If Michael was so desperate to pump Fredo to for more info, why didn't he arrange to snatch Fredo from New York? Why did he wait? And why did Fredo agree to come in for that boathouse meeting if he was so scared? Makes for a splendid plot line but it's not logical.