May be change some other parameters, remove POW or change POS rate?
I'm not a coder by any means, but would it help to implement something like this:
Quote
Therefore, well behaving nodes should shelve future blocks until their block time is reached, so they won't participate in staking blocks on top of a future block. The clocks of well behaving nodes are not expected to drift more than a few seconds, meaning that an honest future block is not expected to be shelved longer than expected network relay times.