A hook the returns a Worker object which exposes methods to post messages and receive them to/from the worker thread.
This hook has less abstraction that the other hooks, but is good for long running processes or if you need to subscribe to updates.
Even if the main thread is blocked, it will not stop or slow. In the example below, I used a timer to show that if the thread
was blocked at any point, the time would still be accurate.