I plan to create my first DC and forest on a physical server, then I want to run a second DC on a virtual server that will replicate the first DC. I understand that this will provide redundancy for AD that if the first domain controller went down the second would resume until the first is back online. Would this work and how?
Yes a DC on a virtual server will work fine, but obviously it needs to be on a different physical server to your first DC to see any benefit in resiliance.
In recent versions of windows there is no primary DC, however there are a number of FSMO roles which are assigned to 1 or more specific DCs. (by default your first)
When your main DC goes down the 2nd will have a replicated copy of your AD (very important) and will continue operating to some extent. If the main DC is down permanently then you can reassign the FSMO roles and carry on.
Quite a bit of the advice won't really apply to a single domain with 2 DCs but you can google for FSMO for a lot more info.
How things are effected by each of the roles with a DC failure http://technet.microsoft.com/en-us/library/cc737648(WS.10).aspx
To add another $0.02 ... Microsoft has some recommendations about virtualizing domain controllers you could search for. Big one is NEVER to restore a snapshot and suffer USN rollback.
Here's a BIG thing to watch.
http://www.bitshop.com/Blogs/tabid/95/EntryId/64/Hyper-V-Domain-Controllers-Virtualized-Space-Time-Continuum-a-warning-about-virtualization-complexities.aspx
Make sure you don't snapshot / save state and restore later - As echobeach2 properly pointed out.