writing a daemon is not necessarily a repetitive process, all the stuff that you "have to do" are driven by engineering demands. You have to think of them consciously before you do each one and there is no particular number of them and no particular order, it's all dictated by your application: when to fork and let the parent die? when to give up terminal? change directory? reset/change umask? what file descriptors to close which ones to open and what to keep? logging? other IPC channels for client apps? etc.
this stuff is not cruft or boiler-plate is it? also, you shouldn't be writing daemons so often as to need a framework, and if you do, you better understand all that goes into it.