Comment permission settings
AFAIK there are no modules that provide the functionality of 1), 2) &amp; 3) out of the box. 

There is an awesome module Comment Permissions that can help you achieve better customization of comment permissions than Drupal core provides. You can take it as an example and expand the functionality that it already has to suit your needs.


  The Comment Permissions module enables control of commenting by user
  role and by node type. Additional user permissions for selected node
  types are added to the user access system so you can configure
  commenting with more control than Drupal core provides.


Permissions provided by module (accessible via Permissions page &amp; can be configured for each content type):


administer comment settings on any page content
administer comment settings on own page content
comment on any page content
comment without approval on any page content
comment without approval on own page content
edit own comments on page content


Hope this helps.