The hard linking only works of the source and destination are in the same mount, for example
/data/downloads:/downloads /data/media:/media
Will create copies and use double the storage on just hard linking, to make it hardlink you need to put the downloads and destination folders in the same directory so make the docker mount look like
/data:/data
instead. Then you just need to tell your torrent client to put the downloaded files into /data/downloads/(either sonarr or radarr) and the the arrs can look into their folders and then hardlink the files into /data/media/whatever
I have no clue if any of this is understandable, but I can post my docker compose once I get to my pc