The problem with this approach is that it slows down a lot contact import, since now it is saving contacts in parallel and with this patch it saves contacts sequentially. This gives a pretty bad experience with big imports, which is the most usual case for VCF importing. A solution I can think of is to process contacts in batches and check for cancellation after processing each batch.