check the PS time out settings.
if you want to run it in PS, make sure the process commits while processing. so if you are importing 50000 items, each of which is a separate thing, then do a commit for each of them, rather than load all 50,000 and then commit at the end. If you wait to commit until the entire file is processed then it will often time out.
also, if you are doing a lot of validation of the data by retrieving data from the server, that will slow things down. look into caching that data. review the processing in general you should be able to get it to run faster by changing up some of these things.
Ultimately running it on a server as Chris suggested is the fastest way to process. You are doing a large volume of transactions so uploading the file to a machine local to the database will always be the fastest. You can write your own, along with a console application. or you can look into using Topwiz Software - TopwizWeb (topwizprogramming.com) to do it all in PB.