Sounds like you just need a way to modify a remote filesystem, then trigger a build step when you're done with the modifications.
Assuming it was wrapped up in a nice UI, would that be missing any features you need?
EDIT: Put more concretely, if you had a site hosted on S3, all you need is a way to modify the source files of that site, either directly or by modifying files in another directory and running a transform step to produce the final result?
Sounds like previews is the main thing missing though? I don't consider github to be similar to a remote filesystem, because like you said certain simple things like uploading images and other arbitrary data isn't easy.
Assuming it was wrapped up in a nice UI, would that be missing any features you need?
EDIT: Put more concretely, if you had a site hosted on S3, all you need is a way to modify the source files of that site, either directly or by modifying files in another directory and running a transform step to produce the final result?