[PT-D] Updated Dynamo skip message for `@contract` tests (#112793)

Even Dynamo can now trace through module hooks, its regex matcher for `HASATTR` does not like the state key:
https://github.com/pytorch/pytorch/blob/12a6f5aa6bf3e11668293c36b436eead2f3b8614/torch/distributed/_composable/contract.py#L10-L14
https://github.com/pytorch/pytorch/blob/12a6f5aa6bf3e11668293c36b436eead2f3b8614/torch/_dynamo/guards.py#L353-L355

```
PYTORCH_TEST_WITH_DYNAMO=1 python -m pytest test/distributed/_composable/test_contract.py
```

```
------------------------------------- Captured stderr call -------------------------------------
[2023-11-02 14:40:02,242] torch._dynamo.convert_frame: [WARNING] WON'T CONVERT resume_in_test_registry /data/users/andgu/pytorch/test/distributed/_composable/test_contract.py line 125
[2023-11-02 14:40:02,242] torch._dynamo.convert_frame: [WARNING] due to:
[2023-11-02 14:40:02,242] torch._dynamo.convert_frame: [WARNING] Traceback (most recent call last):
[2023-11-02 14:40:02,242] torch._dynamo.convert_frame: [WARNING]   File "/data/users/andgu/pytorch/torch/_dynamo/convert_frame.py", line 687, in _convert_frame
[2023-11-02 14:40:02,242] torch._dynamo.convert_frame: [WARNING]     result = inner_convert(frame, cache_entry, hooks, frame_state)
[2023-11-02 14:40:02,242] torch._dynamo.convert_frame: [WARNING]   File "/data/users/andgu/pytorch/torch/_dynamo/convert_frame.py", line 148, in _fn
[2023-11-02 14:40:02,242] torch._dynamo.convert_frame: [WARNING]     return fn(*args, **kwargs)
[2023-11-02 14:40:02,242] torch._dynamo.convert_frame: [WARNING]   File "/data/users/andgu/pytorch/torch/_dynamo/convert_frame.py", line 406, in _convert_frame_assert
[2023-11-02 14:40:02,242] torch._dynamo.convert_frame: [WARNING]     return _compile(
[2023-11-02 14:40:02,242] torch._dynamo.convert_frame: [WARNING]   File "/data/users/andgu/pytorch/torch/_dynamo/convert_frame.py", line 614, in _compile
[2023-11-02 14:40:02,242] torch._dynamo.convert_frame: [WARNING]     guarded_code = compile_inner(code, one_graph, hooks, transform)
[2023-11-02 14:40:02,242] torch._dynamo.convert_frame: [WARNING]   File "/data/users/andgu/pytorch/torch/_dynamo/utils.py", line 221, in time_wrapper
[2023-11-02 14:40:02,242] torch._dynamo.convert_frame: [WARNING]     r = func(*args, **kwargs)
[2023-11-02 14:40:02,242] torch._dynamo.convert_frame: [WARNING]   File "/data/users/andgu/pytorch/torch/_dynamo/convert_frame.py", line 594, in compile_inner
[2023-11-02 14:40:02,242] torch._dynamo.convert_frame: [WARNING]     check_fn = CheckFunctionManager(
[2023-11-02 14:40:02,242] torch._dynamo.convert_frame: [WARNING]   File "/data/users/andgu/pytorch/torch/_dynamo/guards.py", line 987, in __init__
[2023-11-02 14:40:02,242] torch._dynamo.convert_frame: [WARNING]     guard.create(builder)
[2023-11-02 14:40:02,242] torch._dynamo.convert_frame: [WARNING]   File "/data/users/andgu/pytorch/torch/_guards.py", line 244, in create
[2023-11-02 14:40:02,242] torch._dynamo.convert_frame: [WARNING]     return self.create_fn(builder, self)
[2023-11-02 14:40:02,242] torch._dynamo.convert_frame: [WARNING]   File "/data/users/andgu/pytorch/torch/_dynamo/guards.py", line 354, in HASATTR
[2023-11-02 14:40:02,242] torch._dynamo.convert_frame: [WARNING]     assert m, f"invalid hasattr check {guard.name}"
[2023-11-02 14:40:02,242] torch._dynamo.convert_frame: [WARNING] AssertionError: invalid hasattr check getattr(L['___stack0'], '__composable_api_state_key_643e6a56-3313-4c8f-9401-a5af7bd3ee26')
```
Pull Request resolved: https://github.com/pytorch/pytorch/pull/112793
Approved by: https://github.com/wanchaol
diff --git a/test/distributed/_composable/test_contract.py b/test/distributed/_composable/test_contract.py
index 4da4733..66e82b1 100644
--- a/test/distributed/_composable/test_contract.py
+++ b/test/distributed/_composable/test_contract.py
@@ -25,7 +25,7 @@
 
 
 class TestContract(TestCase):
-    @skipIfTorchDynamo("Dynamo does not yet capture module hooks")
+    @skipIfTorchDynamo("Dynamo does not support the state key")
     def test_add_hooks(self):
         def forward_pre_hook(
             module: nn.Module, inp: Tuple[torch.Tensor]
@@ -69,7 +69,7 @@
         for p1, p2 in zip(model.parameters(), model_with_hooks.parameters()):
             self.assertEqual(p1, p2)
 
-    @skipIfTorchDynamo("Dynamo does not yet capture module hooks")
+    @skipIfTorchDynamo("Dynamo does not support the state key")
     def test_modify_fqn(self):
         class ModelWrapper(nn.Module):
             def __init__(self, module):
@@ -91,7 +91,7 @@
         ):
             wrap_module(model.seq1)
 
-    @skipIfTorchDynamo("Dynamo does not yet capture module hooks")
+    @skipIfTorchDynamo("Dynamo does not support the state key")
     def test_state(self):
         def check_and_update_state_hook(
             module: nn.Module, inp: Tuple[torch.Tensor]
@@ -115,7 +115,7 @@
         model(torch.zeros(10, 10), torch.zeros(10, 10))
         self.assertEqual(api.state(model.seq1).dummy_state, 8)
 
-    @skipIfTorchDynamo("Dynamo does not yet capture module hooks")
+    @skipIfTorchDynamo("Dynamo does not support the state key")
     def test_registry(self):
         @contract()
         def api1(module: nn.Module) -> nn.Module: