Thank you for the link. That seems to be exactly the issue, so you can close this (or I'll do it when I figure out how).
On Mon, Dec 19, 2016 at 3:28 PM Glenn Morris <rgm@gnu.org> wrote:

The issue (I assume) is that xdg-open creates its new process (evince,
whatever) by forking. Then the original xdg-open process exits, which as
far as Emacs knows means it is done.

See eg https://bugzilla.gnome.org/show_bug.cgi?id=652262