Because we join its thread after cancelling an execution. This is dangerous because we relay on plugins cancel implementation to finish properly. And meanwhile we won't have callbacks, so for example a controller slowing down on cancel won't get an updated velocity from MBF.
UPDATE After #345, this problem won't happen if the old and new goals have the same controller. In that case, we will preempt the previous goal instead of canceling it.