Is it possible to execute an "update" trigger if all columns except one have changed?
I'm not sure about performance impact, but you can convert row to jasonb, remove field, and compare json objects.
So changing WHEN (OLD.* IS DISTINCT FROM NEW.*) to 
when (row_to_json(old)::jsonb - 'last_seen' is distinct from 
 row_to_json(new)::jsonb - 'last_seen') will do the job. 

Also, if you want to modify NEW.updated , it should be BEFORE UPDATE  trigger, not AFTER UPDATE.