Hello! Sorry about the late reply. I was busy finishing up my dissertation the past few months.
Short answers:
1) Lithe allows an application to use multiple user-level schedulers inside a single
application. Without something like Lithe, combining schedulers from multiple libraries can cause performance problems if those
schedulers interfere with one another by obliviously using the same physical cores. Such problems arise, for example, when leveraging code developed by
third-party developers from different frameworks or languages (e.g. OpenMP, TBB, or Go). Without Lithe, each library will attempt to multiplex its tasks on all of the cores it sees in the system, ultimately interfering with other libraries. With Lithe, cores are explicitly shared among each library to avoid interference.
2) Libprocess is an actor style message-passing programming model. It is compatible, but complementary to Lithe. Lithe promotes the use of mutiple user-level schedulers in a single application, where libprocess could be one of those schedulers.
The long answer to your questions lies in chapter 3 of my dissertation.