I cant figure out a way to get rid of the sort warning error
Specifically, the number of rows from the scan is slightly off, and the estimated number of rows those rows will join to is substantially incorrect. An additional index might help, as might a filtered index. It rather depends on the data distribution. If it is skewed, it might be hard to provide that information to the optimizer.
You could try materializing the result of the subtree rooted at the hash join, or the join identified above, in a temporary table. This will give the optimizer better information about the size of the data to be sorted.