Why is something like daemon() needed with systemd? Typically you just run your process as if it was in the foreground, and systemd handles the rest. What do you lose?
Which distributions already do for you.
* https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=825394#221
That was the original issue that caused the problem with systemd, not detaching process from terminal.