Dan, I have an idea to balance the speed and security.
make the period dynamic.
suppose current block should generic by delegate-1 at 00:00:00 , next should by delegate-2.
If delegate-2 receive the block before 00:00:30, then generic next block at 00:00:30.
else if receive before 00:01:00, then generic next block at 00:01:00
we can set a max waitting time like 2 minutes, if delegate-2 still not receive block after 2 minutes, then it can ignore delegate-1.