Did a bit more digging and the 32 byte payload on windows seems to be
``` 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69 ```
On when a timeout doesn't happen, it also seems to send a random amount of ICMP packets per TTL step; not too sure what the mechanism is there exactly (and if any of this needs to be replicated, but am a bit hesitant a zero-length or zero-filled send buffer might produce inaccurate results with some routers/firewalls).
In any case I get similar-ish values of RTT and HopCount, and the time this function blocks on a timeout to what Windows returns on the same network with the current implementation.