Add basic exponential backoff to our code.
Sanitizer
run_thread_sanitizer
#6 operator() /builds/gitlab/las3/development/scheduling/predictable_parallel_patterns/test/scheduling_tests.cpp:61 (tests+0xab191)
#7 execute /builds/gitlab/las3/development/scheduling/predictable_parallel_patterns/lib/pls/include/pls/internal/scheduling/root_task.h:38 (tests+0xab191)
#8 pls::internal::scheduling::worker_routine() /builds/gitlab/las3/development/scheduling/predictable_parallel_patterns/lib/pls/src/internal/scheduling/scheduler.cpp:41 (tests+0xb60c6)
#9 pls::internal::base::thread<void (*)(), pls::internal::scheduling::thread_state>::start_pthread_internal(void*) /builds/gitlab/las3/development/scheduling/predictable_parallel_patterns/lib/pls/include/pls/internal/base/thread_impl.h:41 (tests+0xb68cf)
#10 <null> <null> (libtsan.so.0+0x296bd)
#11 start_thread <null> (libpthread.so.0+0x76da)
#12 __clone <null> (libc.so.6+0x12188e)
ERROR: Job failed: exit code 1