I don't understand why it took over 4 years to bring the Confederacy to surrender. Beyond fighting a mostly defensive war and better generals, they'd got virtually every imaginable disadvantage. Inferior numbers, a smaller industrial base, a blockade, no international recognition, a large slave population whose sympathies were obviously not reliable.
So, what was it? Weather? Terrain?
This is a bit late, but it was sitting in my upvote folder, and now i have free time!
A lot of reasons, on the operational, strategic, and grand strategic levels. In the broadest sense, the rate of Union advance was limited by the size of the area they had to occupy, and it took time for the Union's greater industrial capacity to really tell. Furthermore, operational pauses were common in the winter months, and armies require extensive preparation for campaigning, so they weren't going to spend every day driving into the heart of the Confederacy.
Reconquering the Confederacy immediately in 1861 was probably not going to happen, because it was an area the size of continental Europe and the U.S. Regular Army was a laughably puny 16,000 men. Volunteers called up for the first battles had little in the way of training and nothing in the way of experience; as soon as 90 day volunteers could pull their weight in battle, their enlistments would expire.
As a result, both sides spent most of 1861 mobilizing and training their armies to meet the immense challenges they faced. Herein lies one of the reasons the war lasted past 1862; early in the year, the Union ran out of weapons to equip its men, and thus closed recruiting offices. At the same time, the Confederacy instituted the first conscription act in American history, giving them a temporary parity of numbers for the spring and summer of 1862.
Strategically, Lincoln made a serious mistake in relieving McClellan as general-in-chief in spring of 1862. McClellan's key virtue was not his dynamism as a stand-up, knock-down brawler, but his strategic planning and organizational ability. The U.S. had three main field armies for the 1862 spring offensive, and they had to work in tandem to get the most out of them. McClellan's plan for the spring offensive was quite good, but left as one of multiple army commanders, he was unable to see the whole thing through to execution. When Lincoln relieved McClellan as general-in-chief, he did not replace him with another general for months (and his choice then was sorely lacking), and tried to run the war himself. Removing one of your generals from his position of his greatest strength, and leaving him in one that spotlights his biggest weakness, and attempting to run a massive war effort with no military experience was a recipe for disaster.
Bringing things down to the operational level, 1862 saw Union mistakes and Confederate successes on the campaign trail that saved the Confederacy from immediate collapse. Thanks to Abraham Lincoln's micromanagement of McClellan's army and his paranoia over the security of Washington, Lee had an opening to mount a counteroffensive against the exposed right wing of McClellan's army. In the Seven Days Battles, Lee forced McClellan from the gates of Richmond, buying the Confederates breathing room; at the same time, Lincoln rejected McClellan's proposal to shift the campaign towards Petersburg. While McClellan remained on the York-James peninsula, most of his army was detached from his control and attached to John Pope's army. It was then smashed and chased into the fortifications of Washington itself, and Lee followed up with an invasion of Maryland. At the same time, Braxton Bragg relieved Union pressure in central Tennessee by attacking the U.S. Army of the Ohio's supply line up to Louisville Kentucky.
By the end of 1862, between Lee's great victories and the threat of emancipation, Southern will had solidified; they were going to fight this out until midnight. As the war unfolded, about 94% of Virginians fought, and they weren't even the most highly mobilized state in the Confederacy. The war did not end until all three of the main Confederate armies were soundly defeated. Pemberton's Army of Mississippi surrendered in 1863, Hood's Army of Tennessee was smashed outside of Nashville in December 1864, and Lee's army was surrounded during his retreat from Richmond in April of 1865.
Really, you have to look at the operational history of the major armies to understand why the Confederacy was not rapidly smashed; battles are near run things, and in no other sphere of human activity is so much room reserved for chance and circumstance.
Feel free to hit me with any follow up questions!