Use background tasks properly in candidate-validation (#4002)

* refactor: candidate-validation background tasks

* fix tests

* fmt
16 jobs for master in 11 minutes and 33 seconds (queued for 1 second)