In all current implementations of Proof of Stake - in Ethereum 2.0, Cardano, Algorand, Tezos and many more, there is a set time for a validator to create the new block before his stake is lost and the next validator makes the block instead in order to prevent attackers from slowing down the network for longer than the set time. But I came up with another solution, when the validator is supposed to make a new block, the next validator makes a block as well in case the validator doesn't make the block, next validators continue extending the fork, until the original validator makes a block or they make a set amount of blocks in the fork, in the first case the fork is deprecated and in the latter it's continued like normal, of course they won't lose their stake if the original validator makes the block.
Let's assume the time for a validator to make a block is between 1 and 3 seconds. The "block time" in regular Proof of Stake would be 3 seconds in this case, but in the new solution, there would be no delay in blocks, and the amount of blocks needed in the fork would be 3 blocks (that's between 3 and 9 seconds, giving the original validator enough time to create a block).
Let's look at this scenario, the validator here makes the block between 2nd and 3rd block in the fork, which makes it the main chain and the fork is deprecated.
First Scenario
Now let's look at another scenario, here the validator doesn't make the block in time thus the fork is accepted as the main chain
Second Scenario
I've been thinking about this for a long time, but i haven't discussed it with anybody yet. Feel free to point out flaws and mistakes in the text. Thanks for reading.