Hi @mbard, thanks for sharing this here rather than via email. 
I'm off to bed over here, but in short, that isn't possible at the moment but would be an interesting addition. Instances natively support hierarchy - they are subclasses of the Python list
type, just like the Context which hosts Instances as children already.
The GUI doesn't support hierarchy, but more importantly the behavior of stopping a parent on a failed child also isn't supported.
I would suggest implementing the latter, lower level behavior before approaching the GUI.
For starters, you can group your instances like so.
from pyblish import api
context = api.Context()
instanceA = api.Instance("A", parent=context)
instanceB = api.Instance("B" parent=instanceA)
# Or, as they are all lists..
context = api.Context()
context += [api.Instance("A")]
context[0] += [api.Instance("B")]
You would then need to have a look at the Iterator class to ensure it delivers both parents and children to the process()
method of your plug-ins. Careful not to assume that all children of an instance are instances, as some use that hierarchy to store all sorts of things.
Alternatively however, I would propose keeping your hierarchy flat and reduce instances to higher-level objects that encapsulate the asset as a whole as opposed to DAG nodes in Maya.