[..] plus maybe another library that would find a running Tor or launch one as needed.
Are there ideas/designs written down for this anywhere? I am interested in seeing this happen -- I took a very quick stab at it in txtorcon but realized it would be Much Better if this had co-operation from Tor processes running on the system.
Arm needed a capability like this so it can provide useful messaging (ie "Tor isn't running" vs "Tor's running, but without a control port"). This is done via the 'get_pid_by_*' methods in stem's system module...
https://gitweb.torproject.org/stem.git/blob/HEAD:/stem/util/system.py
Is that the sort of thing that you're looking for? -Damian