log when failing to snapshot
simplify snapshot writing strategy

renaming can't be relied upon as tmpdir -> destination may cross filesystem
boundaries