model: split THREAD_* processing into process_thread_action()