Managing groups of users
You want to use Organic Groups, and if needed, Role Delegation. I think you can get by with just Organic Groups maybe ... Drupal core can send out notifications of new accounts by itself upon account creation.

Orangic Groups is a contrib module:


  Enable users to create and manage their own 'groups'. Each group can
  have subscribers, and maintains a group home page where subscribers
  communicate amongst themselves.
  
  They do so by posting the usual node types: blog, story, page, etc. A
  block is shown on the group home page which facilitates these posts.
  The block also provides summary information about the group.
  
  Groups may be selective or not. Selective groups require approval in
  order to become a member, or even invitation -only groups. There are
  lots of preferences to configure groups as you need.


A synopsis from Role Delegation project page is:


  This module allows site administrators to grant some roles the
  authority to assign selected roles to users, without them needing the
  administer permissions permission.
  
  For each role, Role Delegation provides a new assign ROLE role
  permission to allow the assignment of that role.


Fully understanding and leveraging these modules to fit your workflow, business logic, etc is a task I leave up to you. Your question is far from simple.