However, when WinSCP's connection is interrupted ("connection reset by peer" because my wirless AP sucks), the file is somehow renamed on the server from "filename.filepart" to "filename" even though the file is incomplete. Then, when I reattempt the transfer, WinSCP doesn't try to resume, since the .filepart file is gone.
Okay, here is where it gets weird. This bad "renaming on disconnect" behavior happened four or five times, and then one day I decided to manually rename the incomplete remote file from "filename" to "filename.part" before reattempting the transfer. WinSCP then prompted me if I wanted to resume, and it resumed and correctly transferred the rest of the file.
Now that it has done one successful resume, though, WinSCP no longer has the "rename on disconnect" problem -- when a connection is interrupted, the incomplete remote file correctly stays named "filename.filepart"!! I have closed and restarted WinSCP since then and done more interrupted transfers, and it seems fixed. It's possible there is some small difference in the situations that I'm not noticing (e.g., different disconnection causes), but I don't think so.
This is with background transfers (I haven't tried foreground transfers, so I dunno if that matters or not); explorer-style interface; WinSCP 3.7.4.
SSH protocol version: 2
SSH implementation: OpenSSH_3.9p1
Encryption algorithm: aes
File transfer protocol: SFTP (v3)
Can change permissions: Yes
Can change owner/group: No/No
Can execute arbitrary command: No
Can create symlink/hardlink: Yes/No
Can lookup user groups: No
Can duplicate remote files: No
Native text (ASCII) mode transfers: No
The server does not support any STP extension.