Myślę, że twoja wartość zwrotu finalQuizs jest wypełniana przed forEach oświadczenie. Tak więc zapytania aktualizacyjne nie zmieniają tego zgodnie z oczekiwaniami. To jest powód otrzymywania zaktualizowanych danych po odświeżeniu strony.
Jeśli spodziewasz się, że user_participated: true w zwracanej wartości, powinieneś otrzymać ją po findOneAndUpdate line.Powinieneś zrobić coś takiego na końcu try blok:
return await newQuiz.findAll();