Why did it take four years? One man may have made the difference. It seems possible to me that the Union Army under the command of Robert E. Lee could have won the war in a single summer - and Lee could have had that command.
Lee's resignation of his commission in the US Army was perhaps the most dishonorable act of his life. If he had stayed true to his oath, the Civil War might have been over in 6 months, with a minimal loss of life.