I use Clean Eject (free). It doesn’t stop writing the files but will intercept the drive before it gets removed, so it’s better than a tool that you have to run separate from the eject process..
In addition I use a custom Automator Service (also free) to be able to assign a hotkey to clean & eject a volume using the app.