dup_threading.py fails to traceback: AttributeError: 'exceptions.TypeError' object has no attribute 'with_traceback' (lp:#1794819)

[Original report](https://bugs.launchpad.net/bugs/1794819) created by **Marijn Vriens (marijnvriens)**
```
When running duplicity-backup to webdav it fails, and then the traceback
fails to generate in dup_threading.py.

This happens after uploading the first file correctly to webdav, and
creating the second file to upload.

Here's the beginning and end of the session:

================================================================================
duplicity 0.7.18 (August 21, 2018)
Args: /usr/local/bin/duplicity --verbosity i --asynchronous-upload --full-
if-older-than 3M --encrypt-key 0xD58004C930983622 --sign-key
0xD371AC4B4CC1A2AB /home/marijn --exclude-filelist
/home/marijn/.duplicity/list.txt webdavs://something/something
Linux muis2 4.15.0-34-generic #37~16.04.1-Ubuntu SMP Tue Aug 28 10:44:06
UTC 2018 x86_64 x86_64
/usr/bin/python2 2.7.12 (default, Dec  4 2017, 14:50:18)
[GCC 5.4.0 20160609]
================================================================================
...
A Some/file/A
AsyncScheduler: scheduling task for asynchronous execution
Processed volume 1
Writing duplicity-full.20180927T144546Z.vol1.difftar.gpg
WebDAV PUT /remote.php/webdav/muis2/duplicity-
full.20180927T144546Z.vol1.difftar.gpg request with headers: {'Connection':
'keep-alive', 'Authorization': 'Someauthcreds'}
WebDAV data length: 209920753
A Some/file/B
A Some/file/C
AsyncScheduler: scheduling task for asynchronous execution
WebDAV response status 201 with reason 'Created'.
AsyncScheduler: task execution done (success: False)
AsyncScheduler: a previously scheduled task has failed; propagating the
result immediately
Traceback (innermost last):
  File "/usr/local/bin/duplicity", line 1567, in <module>
    with_tempdir(main)
  File "/usr/local/bin/duplicity", line 1553, in with_tempdir
    fn()
  File "/usr/local/bin/duplicity", line 1405, in main
    do_backup(action)
  File "/usr/local/bin/duplicity", line 1523, in do_backup
    full_backup(col_stats)
  File "/usr/local/bin/duplicity", line 584, in full_backup
    globals.backend)
  File "/usr/local/bin/duplicity", line 466, in write_multivol
    (tdp, dest_filename, vol_num)))
  File "/usr/local/lib/python2.7/dist-
packages/duplicity/asyncscheduler.py", line 152, in schedule_task
    return self.__run_asynchronously(fn, params)
  File "/usr/local/lib/python2.7/dist-
packages/duplicity/asyncscheduler.py", line 216, in __run_asynchronously
    with_lock(self.__cv, wait_for_and_register_launch)
  File "/usr/local/lib/python2.7/dist-packages/duplicity/dup_threading.py",
line 105, in with_lock
    return fn()
  File "/usr/local/lib/python2.7/dist-
packages/duplicity/asyncscheduler.py", line 208, in
wait_for_and_register_launch
    check_pending_failure()  # raise on fail
  File "/usr/local/lib/python2.7/dist-
packages/duplicity/asyncscheduler.py", line 192, in check_pending_failure
    self.__failed_waiter()
  File "/usr/local/lib/python2.7/dist-packages/duplicity/dup_threading.py",
line 201, in waiter
    raise state['error'].with_traceback(state['trace'])
 AttributeError: 'exceptions.TypeError' object has no attribute
'with_traceback'
```

Story points: 6.0