"su" does a bunch of things that are perfectly appropriate for something
that creates a "new" login. That's its job.
Running a daemon under its own UID is an almost-completely different
problem. We already have a tool which does this (start-stop-daemon),
which has been recommended for this task for umpteen years, and which still
works if there is no .service file – for whatever reason.