Only thing you need is the camera in your worker, so use the OrbitControls in your main thread and just snycrhonize the camera quaternion and world position with your thread.
What if I have a raycasting, TransformControls and Keyevents?
Keep user interactions, event handling (like OrbitControls), and any operations directly related to the DOM or user input in the main thread.
Synchronize changes in the camera’s properties (position, rotation, etc.) between the main thread and the worker thread for rendering updates.
Handle interactions like raycasting or object transformations in the main thread and communicate the necessary data or results to the worker for rendering updates.
This means it is not necessary to have proxies for the controls like puxiao suggests in his example to pass the events if the controls are camera related?