I have encountered this problem but in my case, Bootcamp had created the problem. I mounted the disk in Windows (Bootcamp) and apparently, the disk did not eject properly. So when I switched to Mac OS, I found the disk unmounted but not able to eject it. In Disk Utility it appeared pale. So I did like below:
sudo lsof | grep "/Volumes"
You would see the result something like this:
mds 1071 root 6r DIR 1,2 8192 2 /Volumes/BOOTCAMP
mds 1071 root 11r DIR 1,2 8192 2 /Volumes/BOOTCAMP
The second column is the id of a process that makes the disk in use. So you should do this:
sudo kill [processId]
In my example:
sudo kill 1071
Then your disk is free to be ejected by this command:
diskutil eject [diskIdentifier]