Sorry to insist on this point, but I'm still not sure that there is no misunderstanding (maybe because of my foreign english).
If you log your events at the entrance of your "PushData" function
and provide each log line with a timestamp with a precision up to the milliseconds,
can you see a pattern like this
08:19:42,500 <event for 8:19:42>
08:19:43,500 <event for 8:19:43>
08:19:45,500 <event for 8:19:45>
or like this
08:19:42,850 <event for 8:19:42>
08:19:43,950 <event for 8:19:43>
08:19:45,050 <event for 8:19:45>
? Note that in both cases, the event for 8:19:44 is missing, but in the latter case it is just because of an event generation rate which is slightly less than one event per second.