Disconnecting non compatible witness nodes happens too late

With the current implementation disconnecting non compatible witness nodes happens to late. For example if the last hard fork that witness 1 knows is 19:45:00 it might happen that witness could receive the block with timestamp 19:45:02 from the witness 2 which is ahead with the hardfork , after which disconnection will happen.