These contracts are the same.
The difference you saw is because you used the same Storage contract for the tests and the second write was cheaper. You would’ve observed the same difference if you used the same Test contract twice.
SSTORE
is the opcode that writes to storage. The cost is higher when you change a storage slot from zero to nonzero, than when you change it from nonzero to nonzero.
For a detailed breakdown of these costs see https://github.com/wolflo/evm-opcodes/blob/main/gas.md#a7-sstore.