馃崚 sftp: unbreak gcc compat
a compiler bug appears to break life time management such that we have double destructions in the coroutines. using constructors instead of aggregate init seems to bypass the problem
this sounds relevant https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104872
(cherry picked from commit 33fdaa88)