Upon receiving a newly mined block, the block timestamp validation is performed here:
https://github.com/bitcoin/bitcoin/blob/master/src/validation.cpp#L3263-L3270
Q1: As for the second check (block timestamp too far in the future), what prevents a miner broadcasting a block that's near the limit in the future and having some of the nodes accept the block, while some other nodes reject the block?
Q2: If a part of the network accepts a block and the other part of the network rejects a block (i.e., not record the block it in its blocktree due to invalid time stamp), can the network recover from this in any way?