If I name my Active Directory domain "foo.local", what domain do I tell the (Windows) computer to join to? Do I put in "foo.local" or just "foo"?
You can join the domain using foo or foo.local. Foo is the single label NetBIOS name of the domain and foo.local is the DNS FQDN of the domain. Using either one to join the domain is valid, although I prefer to always type the FQDN.
You would put foo.local, but you shouldn't use a .local TLD for an AD domain.