What is the best practice for creating a daemon with launchd that runs at lower than default priority
Summarized from man launchd.plist:

LowPriorityBackgroundIO: Specifies whether the kernel should consider this daemon to be low priority when doing file system I/O when the process is throttled with Darwin-background classification.

ProcessType: This optional key describes, at a high level, the intended purpose of the job.  The system will apply resource limits based on what kind of job it is.  If left unspecified, the system will apply light resource limits to the job, throttling its CPU usage and I/O bandwidth.

ProcessType=Background: Background jobs are generally processes that do work that was not directly requested by the user.  The resource limits applied to the Background are intended to prevent them from disrupting the user experience.