bpo-33469: RuntimeError after closing loop that used run_in_executor (GH-7171)

(cherry picked from commit fdccfe09f0b10776645fdb04a0783d6864c32b21)

Co-authored-by: Yury Selivanov <yury@magic.io>
diff --git a/Lib/asyncio/futures.py b/Lib/asyncio/futures.py
index 4a56f32..0e0e696 100644
--- a/Lib/asyncio/futures.py
+++ b/Lib/asyncio/futures.py
@@ -353,6 +353,9 @@
                 source_loop.call_soon_threadsafe(source.cancel)
 
     def _call_set_state(source):
+        if (destination.cancelled() and
+                dest_loop is not None and dest_loop.is_closed()):
+            return
         if dest_loop is None or dest_loop is source_loop:
             _set_state(destination, source)
         else: