Thanks for the analysis. This is one of my main PS issues in that all the obvious ways are in fact wrong. I tried 3-4 different file write methods before and all were unbearably slow.
On that note, what are the obvious ways you've tried?
So many times i run into performance walls with powershell, that calling the .net library directly is basically required.