I have taken both routes many times. Aside from my obvious frequent use of US-29 between Charlottesville and Fairfax County during my college years, I've used US-29 all the way down to Greensboro as part of trips to Florida fairly often just for a change of pace from I-95 or because of heavy traffic on the Interstate, especially when my travel has been close to a major holiday weekend. If all things are equal between the two routes (all things are never equal), using US-29 adds about an hour of travel time between the DC area and Greensboro, due mainly to lower speed limits and the need to stop at traffic lights. On the other hand, I find my blood pressure tends to be lower when I take Route 29. Don't forget there is about a 13-mile work zone on I-95 from Exit 143 to just south of Exit 130, a combination of HO/T lane construction for the northern ten miles and road reconfiguration for the southern three miles.
As a general matter, I agree with Mapmikey about the portion north of Charlottesville, although I'd suggest that the heavy traffic aspect extends south of Warrenton as far as Opal (the turnoff for US-17 southeast to Fredericksburg). The area between Gainesville and Warrenton has become what people in Charlottesville used to refer to as "Fairfaxed"–a once-rural area has become highly suburban with a lot of new developments and a lot of annoying new traffic lights. In the 1990s, it used to take me two hours to drive between my parents' house just east of Fairfax City and UVA's Central Grounds. Nowadays, the same trip via US-29 would typically take at least half an hour longer and it wouldn't be unusual for it to take three hours. The same phenomenon about suburban development extending out applies to the area between Ruckersville and Charlottesville, too.
Depending on how busy I-66 seems as you approach Gainesville, I've found over the years that it can be faster to go two exits further to the west to Exit 31 for VA-245. Go left at the bottom of the ramp, then at the end of the road go left again onto US-17 to Warrenton and connect to US-29 there. You add a little distance, but you also skip a bunch of traffic lights between Gainesville and Warrenton. (The more common alternative of using Exit 40 to US-15 is not as fast as it used to be because the commuters "discovered" that option years ago, plus there is an at-grade railroad crossing that can slow you down.) Another option my father used to use is to go through Warrenton, then take US-211 west to VA-229 south to Culpeper. You avoid Opal and some lights on Route 29, but you wind up in the middle of Culpeper, so I'm not sure it saves any time these days. Back when he went that way on a regular basis, neither the Warrenton nor Culpeper bypasses existed, so it did save a bit of time due to hitting fewer lights in those two towns. Once you're south of Culpeper, don't speed in the area south of the turnoff for Stanardsville–there is a nice flat straightaway after you pass the Sheetz station and the cops know how inviting it is. Once you pass the Bavarian Chef, you're past the worst problem area.
South of Charlottesville, I find it to be generally a nice road that doesn't have a lot of traffic and provides a fairly relaxing drive, other than a short stretch immediately south of the southern Route 460 junction. The one potential downside to that nice empty road, if you don't like to obey the speed limit, is that if the cops are out, there won't be a lot of other vehicles to attract their attention, so you'll need to pay attention. Also, don't speed through Tightsqueeze (speed limit drops to 45, if I recall correctly); I know a good number of people who have gotten tickets there.
I remember I once took NC-87 from Burlington up to Reidsville to connect to US-29 back in my law school days when I wanted to clinch all of US-29 in Virginia. Back then, that made some level of sense because otherwise you had to go almost to Death Valley to pick up Route 29. Nowadays, the new Greensboro beltway might change the equation. Note US-29 in North Carolina has a 70-mph speed limit for a decent portion of the section between the state line and Greensboro.
I think the suggestion Dirt Roads makes about considering US-301 over the Chesapeake Bay Bridge and the Harry Nice Bridge is a very good suggestion. Connect to VA-207 and you'll hit I-95 near Kings Dominion. Note that while Google Maps shows US-301 in yellow all the way to I-295, it's mostly a two-lane road once you're south of Bowling Green. The most recent time I used that segment I found very little traffic, but I think I'd likely only go that way if I knew of a problem on I-95.