Speed up LEFT JOIN with OR operator in ON clause
Change LEFT JOIN to JOIN unless you really need LEFT.
Clean up things like ( sr.supplier_id = su.supplier_id AND sr.supplier_id = su.supplier_id )
Change the OR into a UNION (with a lot of rewriting)
Provide SHOW CREATE TABLE (so we can see if you have suitable indexes)
Don't leave out the rest of the conditions -- they may be part of the problem.
Improve the prettyprinting, perhaps


like this:

SELECT  *
    FROM  supplier_responses sr
    LEFT JOIN  
        (
        SELECT  *
            FROM  supplier_updates su
            LEFT JOIN  
                (
                SELECT  supplier_id supplierId,
                        coalesce(internal_id, supplier_id) latest_id,
                        Max(timestamp) latest_timestamp
                    FROM  supplier_updates
                    GROUP BY  supplier_id, supplier_id
                ) suLatest  ON suLatest.supplierId = su.supplier_id
                         AND  suLatest.latest_timestamp = su.timestamp
                         AND  suLatest.latest_id = coalesce(su.internal_id, supplier_id)
        ) su  ON ( sr.supplier_id = su.supplier_id
              AND  sr.internal_id = su.internal_id 
                 )
      OR  (        sr.supplier_id = su.supplier_id
              AND  sr.supplier_id = su.supplier_id 
          ) --
    WHERE  some clause...
    ORDER BY  su.timestamp_at ASC;


Perhaps a composite index like INDEX(supplier_id, internal_id) would be beneficial.