What is the reason that you are using timers here? (especially using strict time windows).
Attempting to pretend like the laws of nature can be broken (here: that communication between two nodes can always happen instantly) will result in an hill-up battle when building algorithms.
If it is possible to use conflict-free replicated data types (CRDTs) for your application, I would definitely take a look at that instead.
Can you tell us more about your problem domain? There might be other approaches to circumvent the problems you’re having.






















