Using SerialExecutor to make an actor that is tied to run loop

I'm working on infrastructure to make it easy to interact with CFRunLoop callback APIs for assistive technology. Specifically I am interested in making sure I can hand off a reference type as an unsafe pointer as a context pointer and safely use it in the callback.

Part of that is using zeroing weak references. which I've posted about separately.

Part of that is wanting to interact with normal async/await/actor semantics as part of adding and removing callbacks. For this I added a SerialExecutor tied to a persistent run loop thread and made an associated GlobalActor

You can see them here as ObserverRunLoopActor and SystemObserver and see them further extended here as ApplicationObserver.

I'm hoping for feedback on if this is a valid and/or expected use case for SerialExecutor and what if anything I would want to adjust or how I might contribute to that API becoming public.