Problem seems to be with ExFat
I dug into with iostat and have seen samba is writing/allocating the whole 1 GB on the ExFAT USB dongle. Because this is rather slow, a timeout occurs https://www.samba.org/samba/docs/curren ... onf.5.html
strict allocate (S)
This is a boolean that controls the handling of disk space allocation in the server. When this is set to yes the server will change from UNIX behaviour of not committing real disk storage blocks when a file is extended to the Windows behaviour of actually forcing the disk system to allocate real storage blocks when a file is created or extended to be a given size. In UNIX terminology this means that Samba will stop creating sparse files.
This option is really designed for file systems that support fast allocation of large numbers of blocks such as extent-based file systems. On file systems that don't support extents (most notably ext3) this can make Samba slower. When you work with large files over >100MB on file systems without extents you may even run into problems with clients running into timeouts.
When you have an extent based filesystem it's likely that we can make use of unwritten extents which allows Samba to allocate even large amounts of space very fast and you will not see any timeout problems caused by strict allocate. With strict allocate in use you will also get much better out of quota messages in case you use quotas. Another advantage of activating this setting is that it will help to reduce file fragmentation.
To give you an idea on which filesystems this setting might currently be a good option for you: XFS, ext4, btrfs, ocfs2 on Linux and JFS2 on AIX support unwritten extents. On Filesystems that do not support it, preallocation is probably an expensive operation where you will see reduced performance and risk to let clients run into timeouts when creating large files. Examples are ext3, ZFS, HFS+ and most others, so be aware if you activate this setting on those filesystems.
Default: strict allocate = no
So the maximum filesize before this happens depends on the write speed of the usb stick and other IO load on the drive. Windows handles this better. When I put the share on the ExFAT Dongle, it also allocates the whole filesize but without writing it completely. That is also very bad concering wearleveling because it writes each file twice.
Searched a bit and found this one https://github.com/relan/exfat/issues/45
Tested everything on a RPI 3, same problem.