I have a question in my mind whether is it possible that object uses available thread( may be free thread in the pool or just create on demand) and execute( may be certain processing) and have to wait for a time or event to be triggered then execute the next set of operations on the object with a thread available during that time( may be the same thread or new thread) rather than one thread runs the full stack of operations on the object waiting much time wasting thread waiting.
Sounds like you're describing a task manager of some kind. The task manager has a queue of tasks that need to be done. It takes a task from the queue, fetches an idle thread, has that thread execute the task. It's quite common.