With volume like that, you'll want to start thinking about moving things out of Netsuite. It gets expensive in terms of performance and cost. Something you will want to measure right away is the time to create a single transaction.
Since you are dealing with transactions, you are going to have significant processing. You may consider taking the csv, and create the transactions and then slam them in via SOAP. Previously on another project where I was running batches of 50K transactions at a time, when I did it using a restlet, I was able to get a transaction every 3.4 seconds even after shutting off every possible script. This was a system with 15 processors.
So assuming you had 5000 lines with two transactions each, that's 10,000 * 3.4 / 60 / 60, or 9.4 hours.
When I changed that to SOAP and eliminated the server side processing, I was able to get a transaction every 0.6 seconds. One nice thing about SOAP is a lot of people hate it, so you can set every script to not execute in that context. Assuming you could get similar results, your process would take approximately 25% of the time or ~2 hours. Maybe write it the other way first, and then put this in your cap and you can show them how you optimized the system to run much faster and they'll be very pleased.