MySQL dead-locking with UPDATE JOIN and INSERT SELECT statements
Add these indexes:

link_weight:  (link_id, start_at, weight) -- in this order
link:         (owner_id, id)              -- in this order
link_click:   (state, owner_id)           -- in this order
owner:        (owner_id, total_processed) -- in either order


If owner has PRIMARY KEY(owner_id) then don't add the owner index above.

The goal is to speed up processing to minimize deadlocks.  Since deadlocks probably cannot be completely eliminated, be read to rerun transactions when they do occur.

If that does not suffice, break up the UPDATE into two steps:

CREATE TEMPORARY TABLE raw
      ( INDEX(owner_id, total_processed) )
AS
    SELECT ...;   -- from your existing code
UPDATE owner o
  JOIN raw 
    ON raw.owner_id = o.id
   SET o.total_pending = raw.total_pending,
       o.total_confirmed = raw.total_confirmed,
       o.total_awaiting_processing= raw.total_awaiting_processing,
       o.total_processed= raw.total_processed,
       o.total_invalid = raw.total_invalid;


If you need further help, please provide

EXPLAIN SELECT ...
EXPLAIN UPDATE ...
SHOW CREATE TABLE ...