This event time suspiciously matches with time when ‘mautic:campaigns:rebuild’ cron job starts.
Code investigation shows that all leads which has ‘manualy_removed = 0’ flag value will be added back to campaign. At the same time, “Remove action” just set Manually removed flag to true, so all looks fine, maybe bug somewhere deeper.
Please, confirm bug or provide us with right solution of this problem.
My suggestion is to check cron jobs (Cron jobs | Mautic):
→ mautic:campaigns:rebuild (alias mautic:campaigns:update) is responsible for the association of contacts to campaigns.