Actual files are stored in that $XDG_DATA_HOME/Trash/files/, but every file in that folder has a corresponding entry in $XDG_DATA_HOME/Trash/info/ that needs to be deleted as well (else you get "phantom files", they show up in trash but nowhere else). Also, external mounts store trash (mount-root)/.Trash(-$UID)/ following the same specification. Usually just removing everything in those directories is enough to fix "hung files."
Actual files are stored in that $XDG_DATA_ HOME/Trash/ files/, but every file in that folder has a corresponding entry in $XDG_DATA_ HOME/Trash/ info/ that needs to be deleted as well (else you get "phantom files", they show up in trash but nowhere else). Also, external mounts store trash (mount- root)/. Trash(- $UID)/ following the same specification. Usually just removing everything in those directories is enough to fix "hung files."