Parallel processing is easier 'shown than done.' In the case of stuffing this all into a button, I'm guessing two issues:
- Multiple threads block the ArcMap UI thread, or
- ArcMap puts its own schema lock on the data source and doesn't permit permit the python process access to the data.
Hmm looking further issue has been documented here in an ArcGIS Resources page. Schema lock looks like the culprit.