What's the biggest bottleneck (time) in writing data to a SQL database?
You need to go an read:


The Data Loading Performance Guide
How to analyse SQL Server performance
Import Bulk Data by Using BULK INSERT or OPENROWSET(BULK...) (SQL Server)
bcp.exe
Transferring Data Efficiently by Using Partition Switching
Operations That Can Be Minimally Logged
We Loaded 1TB in 30 Minutes with SSIS, and So Can You
SqlBulkCopy Class
SSIS OleDB destination
Performing Bulk Copy Operations (for OleDB and ODBC examples)


You have to read each link. Really. The short story is that efficient loading must use bulk insert and achieve minimal logging. SSIS is by far the better tool for that, but you can achieve this also programatically. OleDB is the best, but SqlClient (C#) will also do, if needed. Things like row size, network speed and the like are unlikely to be your concern here, but you should always measure (and the articles linked will teach you how). Load performance should be completely orthogonal to existing DB size, if load speed decreases as the DB size increases you must be doing something wrong.


  Finally --- why is it that multiple parallel connections to the database seem to speed up the process to a point? I mean, when I have 20 connections making inserts round-robin style, it's about 6-7x faster than one connection writing ALL the data. I'm curious why this is.


I'll be speculating, due to lack of any investigation and measurement. But most likely you are now blocked by commit flush rate: every time you COMMIT SQL has to stop and wait for the log to be written to disk. If you do not explicitly begin transactions then every statement must stop and wait. Adding more loaders causes causes better log utilization, the log gets committed for 20 writers at once. Read What is an LSN: Log Sequence Number.