execute_in_main_thread now falls back to running in the current thread
if the engine doesn't have Qt available