I think you’re fundamentally misunderstanding how data is handled in federated systems. When an account from Threads interacts with your post or you interact with a Threads post, information is exchanged exclusively through Actions sent between the servers- never to or from your or their client and another server. It looks like this:
Client <=API=> Instance <=Action=> Instance <=API=> Client
They don’t get any information that isn’t already available publicly to any random user on your instance- no IP address or anything otherwise. Threads’ mobile app data collection has no bearing on their ability to collect information on you.
Edit: To be clear- there is theoretically a set of protocols in the ActivityPub spec that allows for direct client to server communication (unimaginatively called ActivityPub Client-to-Server), but it hasn’t been adopted by any current Fediverse software implementation that I’m aware of.
Honestly, BlueSky’s AT Protocol fixes pretty much all of these issues (save for having a single actor controlling things as for the moment it’s still in active development and not adopted by any other project).
Even if you never intend to sign up for or use their protocol, I’d give it a read- it’s a really fascinating system design:
https://atproto.com/guides/overview