I was going to try and speed it up a little more by using /fwrite -n instead of $+ $crlf but interestingly enough it seems faster to use your method.

You can speed it up a little more by relying on an :error label instead of checking $ferr every time though.