I actually surprised, why did you set unix timestamp for the Shanghai fork at #26908?
For all previous forks the point of fork was always set to the block number instead of timestamp, and this was pretty clear, because the timestamp synchronization is a tricky in a distributed system, but the block number is a straight way for the Ethereum protocol as the reference point.
There are no engough checks for the block timestamp on the consensus layer as well, so, the question seems reasonable.