Each one of the bullet points in the description (copied here because trac is going to eventually unversion the description and destroy all this information):
- daemonization
- logging
- IServiceMaker location
- reactor selection
- privilege management (uid, gid, euid, chroot?)
- persistence
- profiling
- process naming
should be an object with methods on it. There should be a daemonizer which knows about how to start services and when (or whether) to daemonize, a logging object which represents all the different ways twistd dcan deal with login, a ServiceMakerBuilder which can build an IServiceMaker provider in each of the various ways, a ReactorSelector that deals with the plugin system, and so on, and so on.
Each of these is a separate task, so if you are looking for a way to start on this ticket, it would be filing tickets for stuff that is an unstructured mess (a combination of module state and undocumented free functions, for example) and converting it into a clean API, then linking those tickets from here. It would be best if each of those tickets described a specific issue which is currently problematic due to the lack of structure, so we can make sure that the structure put in place is actually useful.