"Lincoln fired McClellan because he wasn't ruthless enough."

Not exactly. Before Lincoln was elected president, he was a lawyer/lobbyist for the Illinois Central Railroad, where McClellan was vice president and chief engineer. McClellan resented having to take orders from someone who had been his subordinate. In November 1861, Lincoln came to the house where McClellan had his headquarters on the ground floor and his living quarters upstairs. McClellan kept the president waiting for half an hour, then sent someone down to tell Lincoln he had gone to bed.

McClellan kept dithering during the Peninsular Campaign of 1862. Lee pulled a massive bluff on McClellan, getting him to believe that the Confederates greatly outnumbered him. McClellan abandoned the campaign, which he could have won. Had he taken Richmond, the war would likely have been shortened, since he would have the Tredegar Iron Works, the only steel mill/cannon foundry/locomotive factory in the South.