InsertCursor incredibly slow within Arc

I have an arcpy script that runs with the Python Multiprocessing library and produces a large amount of data as a Python dictionary. Once the multiprocessing operation is complete, the data is written to a table, created by the script, using the InsertCursor method. I developed and tested the code using an IDE and running the script from the command line (file paths as strings), which works fine. From the command line it takes about 22 seconds to write 38,500 rows with 9 fields.

However, when I run the script as a tool from within ArcCatalog or ArcMap (using the same paths as above, hard coded within the script) the same operation takes about 3,900 seconds. As I am using the Multiprocessing library the script is not being run 'in process'.

Does anyone know why there should be such a massive speed difference between the two?