"smallest possible" is exactly one instruction; possibly 0xc3 [ret] or 0x90 [nop]; the problem lies in how you define "complete Windows application", because the answer really differs depending on if you want to make it ABI compliant. But there's nothing preventing you from creating a custom loader/executor that reads a pure binary file, maps it as exec and runs it.
It should be an exe file you can double click and execute.
A .COM file is exactly that, a pure binary that just starts executing at the first byte. Mind you the loader for those has gotten a smidge bigger since its first version.