I think an online form would be nice if there were a way to ensure we weren't getting duplicate applications. Unfortunately, there is no unique identifier, so we would need to go by heuristics, which complicates things enormously.
If you do online-only and only 75% of people are online, you have to hand-count 25% of the population, which means you'd need about a 70% response rate with the people online to match what you have with paper forms. That's not realistic, I don't think. Plus, the people who aren't online tend to be in remote areas, which are much more expensive to hand-count.
The Census is inefficient in a whole lot of ways, but one thing that makes it really efficient is standardization. Every one of the ~700k enumerators gets the same exact kit, every manager gets the same boxes, and everything is basically made so an idiot can do it. There are two reasons for this: the first is that it's cheaper, but the second, more important reason is that the data is consistent from place to place. If people in NY respond online and people in North Dakota respond by mail, you'll get lots of little statistical differences that make the data less easy to work with. This the big reason they need to homogenize everything.
As the other commenter said, the social security number only works for people who are citizens, but the intent of the census is to count everyone who is regularly living in the area at the time. It's a tricky thing to define, and I think a silly one, but it's what the constitution says to do so we do it.