The problem is that UCharacterMovementComponent::MoveAutonomous can tick the anim instance and dispatch notifies outside of the regular skeletal mesh component tick. But when MoveAutonomous calls TickCharacterPose that doesn't perform a full graph update since it doesn't dispatch the parallel anim eval tasks. So any notifies that are being sampled from sequence players in the regular mesh component update aren't sampled from the MoveAutonomous update.
That results in inconsistencies in NotifyQueue and ActiveAnimNotifyState where at one point in the frame we call ConditionallyDispatchQueuedAnimEvents and it will contain a state notify from a sequence player, at other points it won't. The TriggerAnimNotifies code takes that as the notify having started and ended multiple times within a frame, so the start/end events are incorrectly sent.
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-308913 in the post.