If you want you can take a look at ThreadButler (<https://github.com/PhilippMDoerner/ThreadButler>) for the multithreading bits, where I do **exactly** that.
Not even just "kinda" that, I mean **exactly** that. I'm still refining bits and bobs here and there, mostly docs, before I make any alpha announcement, but the code and examples are functional.