One of the issues with the "standard" op2 output (written by PARAM,POST,-1/+1) is that you don't get data recovery until all steps are finished. Even if you did, the op2 might not be readable by a post processor due to buffered output not finishing a write, as well as the EOF marker not being written at the end of the op2 until the job terminates.
Take a look at the NLOPRM case control command; there is an option called OUTCTRL=INTERM. If you requests intermediate output on NLSTEP, then for each converged load increment, you get a separate op2 file containing the solution at the end of that increment. These "increment" op2 files are additional to the standard op2 file, and as soon as the increment has converged, the op2 files are sync'd (buffers emptied) and the EOF written. At that point you can read the op2 file (while MSC Nastran is still running), and even move the op2 file elsewhere or delete it.