Are the timestamps of blocks for Ethereum only accepted when they are monotonically increasing? If yes, why? And why other blockchains like Bitcoin and other blockchains with shorter block time can have more tolerance on timestamps (by setting a window and can accept blocks with timestamps within that window)?.
I'm not sure what you mean with tolerance but here's how it approximately works on Ethereum:
- A block has a timestamp
- A miner assign a timestamp to a block but the timestamp may not be before the previous block's timestamp and not too much in the future
So, yes, the timestamps have to be increasing block by block but the miners have some influence on what exactly the timestamp is. You can read more about this for example here: Can a contract safely rely on block.timestamp?
In a sense Ethereum also includes a "time window" within which blocks are accepted. If a miner uses timestamp too far back the block is ignored by other miners. And the same thing if a miner uses timestamp too far in the future.