I like the performance boost: 1-2 extra getFileStatus calls saved, leading to 4+ HTTP requests saved on a file copy operation.
Patch-wise -1 as is. Adds a bit of convolution to the code, with a new innerDelete. I've done a rework which I'll see what Jenkins thinks of. This reduces the diff between the branch and your patch more (no new innerDelete), changes the javadocs.