Slow convergence with rpart
I have faced similar challenges. You could try to use the RevolutionR rxDTree function which performs reasonably well on large data sets and can be converted to a rpart object.

I found to achieve a reasonable performance boost by specifying the minimum bin size with rpart.control(minbucket=2). You could also tune the complexity parameter. Note that both may lead to poor performance.