There is automatic mechanism in crawlee that drops using proxies that are being blocked, but since you end due to timeout instead of http status it might not be triggered.
I suggest you to implement you own errorHandler and in case that your request ends due to timeout during navigation, you may call
session.markBad()
. ( see
https://docs.apify.com/sdk/js/docs/guides/session-management )
Another thing could be that the mechanism already work, but all the proxies from your proxy pool were already used and blocked, so rotating to new ones doesn't change much.