Yes, I’m not surprised that outer(psi', psi) is a bottleneck. The short answer is that making a density matrix that way is not an efficient way to do it and there are much more efficient ways.
One thing that might immediately help you is the ITensorEntropyTools.jl package:
https://itensor.discourse.group/t/introducing-itensorentropytools-jl/2192
One of the main features of this package is that it automatically determines the best strategy for computing density matrices of the type you are computing (there are roughly two good ways to compute these and it figures out which one).
If that package doesn’t cover your case, please reply below and we could give you additional pointers about how to do this calculation.