Please consider using the built-in importer API in the client library:
SenseNet.Client.Importer
It can import a directory structure in parallel, meaning multiple files and folders at the same time.
If that api does not suit your needs (or you find a bug), we can talk about extending or changing it :).