It takes a long time to shutdown, because dafilesrv is sitting on a poll() with a timeout (of 60s) (inside a wait_read).
Commands are received, a accept() is called to create a new socket and passed to a command handled, which handles the stop command on a different thread.
The stop command then marks the server as stopped, but doesn't do anything re. the wait_read which the main loop has since re-entered.
The issue might effect other things in a similar situation.