Great to see somebody tackle this! Drupal uses module dependencies to good effect, and I've always thought it would be a good idea for WordPress, too.
Suggestion: you currently deactivate the child plugin if a parent dependency is deactivated. In Drupal, they don't let you deactivate a parent, until all of the dependent children are first deactivated. Could that be handled, and if so, what do you think about doing it that way? It seems a little more robust, to me.