The solution was to use Collectfast, which indexes what needs updating by comparing, which prevents these timeouts.