differential equations: when the event fails in NDSolve

The code with a condition Mod(t, 2 π) == 0

data = Block({d = 0.15, r = 0.3}, 
  Reap(NDSolve({x''(t) + d x'(t) - x(t) + x(t)^3 == r Cos( t), 
     x(0) == 0, x'(0) == 0, 
     WhenEvent(Mod(t, 2 π) == 0(*&&t>50*), 
      Sow({t, x(t), x'(t)}))}, {}, {t, 0, 100}, 
    MaxSteps -> ∞)))

It works fine in v11.3, and gives the data as follows

{{{}}, {{{6.28319, 0.895631, 
    0.418075}, {12.5664, -1.21673, -0.312119}, {18.8496, -0.405354, 
    0.587376}, {25.1327, -0.254392, -0.19556}, {31.4159, -0.40937, 
    0.151545}, {37.6991, -0.141298, 0.702613}, {43.9823, -1.09087, 
    1.0678}, {50.2655, -0.921924, -0.607913}, {56.5487, -0.594581, 
    0.48939}, {62.8319, 1.09998, -0.105309}, {69.115, 1.19792, 
    0.541834}, {75.3982, -1.09163, -0.417725}, {81.6814, -0.479742, 
    0.483879}, {87.9646, 0.846189, 
    0.400168}, {94.2478, -1.28112, -0.186879}}}}

However, when the conditions Mod(t, 2 π) == 0&&t>50 apply, the data for t>50 It is not outdated.
Can anyone explain it? Any suggestions would be greatly appreciated!