A quick search online about granting non-admin users privilege to start and stop windows services leads me to this:
Vinay on Stack Overflow
Grant the permission using “Subinacl.exe”, SubInACL is a command-line tool that enables administrators to obtain security information about files, registry keys, and services, and transfer this information from user to user, from local or global group to group, and from domain to domain.
I followed the same example of create two non admin user account and execute command SUBINACL /SERVICE \DomainName\MyService /GRANT=DomainName\USERS=TOP so this will grant the user to start/stop the service.
You probably want to research more into the command and see if that is suitable for you.
I can't think of any alternatives if you are going to use SDK buffering to fan the value out to the collective members.... It is possible to do something like you are doing for deleting values, switching to different collective members and writing values to each member. Does cases where you have to delete values from the collective happen very often? Depending on how often these can happen, this should give us an idea whether or not using SDK buffering is a suitable option for you.