In DPoS,I think the problem can be further simplified by adding block producer(BP)'s signature in a block when he creates a block.
That is, if BP create two different blocks at the same time, he can be voted out.
Of course, this signature can be removed after a certain number of blocks.