How to run code after hook_node_delete has completely run?
You may want to look into hook_field_attach_delete().  This runs after all fields have been removed from a node/entity.  So, if all the file fields (and the actual files) have been removed, and all of them in such a node are all in one directory and they are the only files in that directory, removing that directory in this hook should succeed.