Why does this clean-up need to happen in it's own thread pool? It doesn't seem more expensive than any of the other operations that happen inside of this main thread (i.e. it has to list the directory and potentially do a small number of file-system operations).

If this were moved into the main thread could you get rid of the `executor` entirely?