the batch insert is very fast because it does a lot of operations in RAM and then flushes raw data to disk all together.
The maximum value of vertex IDs counts a lot, because OrientDB will create (and in some cases destroy, during import process) as many records as that number, so if you can keep it low you will have better performance.
The same is for the sorting order of vertex ids in set vertex properties, I strongly suggest you to do fully sorted setVertexProperties().
Anyway, when you invoke setVertexProperties() records are actually flushed to the clusters (before that everything happens in RAM), this is why at that moment you have a slowdown.
Out of curiosity, which insert rate are you having?