Update mutex destructor to see if the assertion message is better.
Try to solve some issues with invoke on MSVC.
Added make_exceptional_future.