How come importing the bootstrap.dat to Bitcoin Core takes so long?
When you bootstrap the database of your Bitcoin Core, the bootstrap.dat contains all the data necessary to build the database, but your computer will still build the database from ground up, verifying each and every transaction of each block. So, compared to the regular synchronization you just save the downloading of individual blocks. Once the bootstrap.dat is renamed to bootstrap.dat.old it has been completely imported and can be safely deleted.

Now, in your case, the bootstrap.dat was probably a few weeks old, and your computer is getting the remaining blocks through regular synchronization. It will download one block, verify all content, update the database, and repeat, until the it has caught up to the current state of the network. 

For the whole process the bottleneck is usually the CPU, as it's mostly computation, or the harddisk i/o. The necessary download speed is much less than 50mb/s, though it is quicker in total if all data is already available on the computer. It is common for this process to take hours to days.

As Jannes and David pointed out in the comments, synchronization performance will generally be improved with the upcoming 0.10 version due to the introduction of headers-first synchronization.