This is exactly what I need to have solved, but usable modification nowhere. So I start to looking for solution on my own.
This is how module orders by articles (helper.php):
$articles->setState('list.ordering', $params->get('article_ordering', 'a.ordering'));
I am not sure, but after I checked database category columns, there are lft and rgt, which looks that it can be used for ordering. I will be happy if somebody smarter will approve that I am right.
So, I have these categories:
People (lft: 173, rgt: 182)
-- Leaders (lft: 174, rgt: 175)
-- Internal Staff (lft: 176, rgt: 177)
-- External Staff (lft: 178, rgt: 179)
-- Others (lft: 180, rgt: 181)
I need to order only by subcategories as my main category is empty. But as you can see, it can be also used to order main category over the subcategories.
Finally, I just tried to modify article ordering this way and it works!!! :)
$articles->setState('list.ordering', 'c.lft, '.$params->get('article_ordering', 'a.ordering'));
Maybe it will be also helpful for others.