macOS Sierra does not fully eject my external hard drive
You can try to eject it via Terminal.app. Go to Spotlight and search for Terminal. It should be the first option. In the interface first type in diskutil list. You should get a list that looks a little like this

diskutil list
/dev/disk0 (internal, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *500.1 GB   disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:                  Apple_HFS Macintosh HD            499.1 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3
/dev/disk1 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *500.1 GB   disk1
   1:                        EFI EFI                     209.7 MB   disk1s1
   2:          Apple_CoreStorage Encrypted               499.8 GB   disk1s2
   3:                 Apple_Boot Boot OS X               134.2 MB   disk1s3
/dev/disk2 (external, virtual):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                  Apple_HFS TMBackup               +499.3 GB   disk2
                                 Logical Volume on disk1s2
                                 AED60A02-41C4-46B8-B762-3D37E10A09CE
                                 Unlocked Encrypted


Now this part is completely in your hands. You have to identify which of those disks is the one that you are having problems ejecting. If you find this tough, you may ask me and I'll tell you which one it is.

After you have obtained your disk's identifier (column on the extreme right) you have to unmount the logical volume, followed by the physical disk. Therefore first unmount the logical volume by running

diskutil unmount /dev/*


Over here you need to replace the "*" with your identifier. The logical volume is the one the looks like this: disk2 &lt;-- This is an example, your's may be called something else.

Then you need to unmount the the physical disk by running the same command

diskutil unmount /dev/*


But this time the identifier will look something like this: disk2s1 &lt;-- This is an example, your's may be called something else. Unmount all the physical disks in your specified drive.

and then finally run

diskutil eject /dev/disk*


Her you have to put your own disk's name. You can see this on the left column of the terminal output.