EMR list_step responses don't contain start date in output
There is a bug in the LIST_STEP_TEMPLATE and other EMR templates around the start date for steps: the conditional looks at `ready_datetime` but then outputs `start_datetime`.

This from https://github.com/spulec/moto/blob/896f040fca975865c1d441d90016446c72db3ed4/moto/emr/responses.py#L794-L796

```
            {% if step.ready_datetime is not none %}
            <StartDateTime>{{ step.start_datetime.isoformat() }}</StartDateTime>
            {% endif %}
```

Nothing in the code looks at `step.ready_datetime` that I could see (use create, start, and end), so I'm guessing the conditional is wrong. This exists in a few other templates too.
diff --git a/moto/emr/models.py b/moto/emr/models.py
index 713b15b9f..d9ec2fd69 100644
--- a/moto/emr/models.py
+++ b/moto/emr/models.py
@@ -86,6 +86,9 @@ class FakeStep(BaseModel):
         self.start_datetime = None
         self.state = state
 
+    def start(self):
+        self.start_datetime = datetime.now(pytz.utc)
+
 
 class FakeCluster(BaseModel):
     def __init__(
@@ -204,6 +207,8 @@ class FakeCluster(BaseModel):
 
         self.start_cluster()
         self.run_bootstrap_actions()
+        if self.steps:
+            self.steps[0].start()
 
     @property
     def instance_groups(self):
diff --git a/moto/emr/responses.py b/moto/emr/responses.py
index 94847ec8b..38b9774e1 100644
--- a/moto/emr/responses.py
+++ b/moto/emr/responses.py
@@ -835,7 +835,7 @@ LIST_STEPS_TEMPLATE = """<ListStepsResponse xmlns="http://elasticmapreduce.amazo
             {% if step.end_datetime is not none %}
             <EndDateTime>{{ step.end_datetime.isoformat() }}</EndDateTime>
             {% endif %}
-            {% if step.ready_datetime is not none %}
+            {% if step.start_datetime is not none %}
             <StartDateTime>{{ step.start_datetime.isoformat() }}</StartDateTime>
             {% endif %}
           </Timeline>
diff --git a/tests/test_emr/test_emr_boto3.py b/tests/test_emr/test_emr_boto3.py
index 212444abf..d849247bd 100644
--- a/tests/test_emr/test_emr_boto3.py
+++ b/tests/test_emr/test_emr_boto3.py
@@ -752,7 +752,9 @@ def test_steps():
         # StateChangeReason
         x["Status"]["Timeline"]["CreationDateTime"].should.be.a("datetime.datetime")
         # x['Status']['Timeline']['EndDateTime'].should.be.a('datetime.datetime')
-        # x['Status']['Timeline']['StartDateTime'].should.be.a('datetime.datetime')
+        # Only the first step will have started - we don't know anything about when it finishes, so the second step never starts
+        if x["Name"] == "My wordcount example":
+            x["Status"]["Timeline"]["StartDateTime"].should.be.a("datetime.datetime")
 
         x = client.describe_step(ClusterId=cluster_id, StepId=x["Id"])["Step"]
         x["ActionOnFailure"].should.equal("TERMINATE_CLUSTER")
['moto/emr/responses.py', 'moto/emr/models.py', 'tests/test_emr/test_emr_boto3.py']