3.13 introduced _handle as a member on the Thread class, which breaks subclasses attempting to use that name for their own purposes. The quick workaround was to rename all instances of _handle to _do_handle and make a note to revert the change once the code is running on python3.14+, where the issue has been fixed. See this issue: https://github.com/python/cpython/issues/132578