ItemFileMoved is post event so the operation should not be blocked by code executed in this thread. But Is.
sample:
public override void ItemFileMoved(SPItemEventProperties properties)
{
System.Threading.Thread.Sleep(20000);
base.ItemFileMoved(properties);
}
When you create following event handler you can see that move operation take 20s.