I2C support on non real time OS? How does it work?
It's nothing to do with PWM. There's hardware support for it on the chip. The OS doesn't have to generate the level changes itself, there will be a number of memory locations (often called registers, but these registers belong to the peripheral and are not to be confused with the processor's registers) which control it. The OS pre-loads them with speed and output values, then gets on with something else.

The peripheral generates its own timing, sends the output signal, reads a reply and puts it in a buffer. Then it sends an interrupt to the OS. The OS makes it available to user programs somehow (in Win10, this will be some sort of ReadFile interface?).

The only thing I don't know is how deep the buffer in the hardware is.

You may find it much easier to get things working with Linux on the Pi, as there's lots more documentation and you can have a look at the C source for the OS I2C drivers.