### Description

This applies to the following APIs:
- [x] open anomaly detection
- [x] start datafeed
- [x] start data frame analytics job
- [x] start trained model deployment

Currently, if the operation takes longer than the configured `timeout`, the response status code is `500`.

With Kibana in mind, a `4xx` response would be more suitable as it will lead to showing more useful information to the user about why the request failed.

Looking at [RFC 9110](https://www.rfc-editor.org/rfc/rfc9110.html#name-408-request-timeout), it seems the most appropriate `4xx` code would be `408 Request Timeout`, even though the RFC describes a different situation. 

The alternative, `504 Gateway Timeout`, would be more appropriate for this situation but it wouldn't improve the user experience in Kibana.
x-pack/plugin/ml/qa/native-multi-node-tests/src/javaRestTest/java/org/elasticsearch/xpack/ml/integration/MlJobIT.java
assertEquals(1, XContentMapValues.extractValue("ml.jobs.closed.count", usage));
        assertEquals(1, XContentMapValues.extractValue("ml.jobs.opened.count", usage));
    }
    private Response createFarequoteJob(String jobId) throws IOException {
        return putJob(jobId, """
            {
                "description":"Analysis of response time by airline",
                "analysis_config" : {
                    "bucket_span": "3600s",
                    "detectors" :[{"function":"metric","field_name":"responsetime","by_field_name":"airline"}]
                },
                "data_description" : {
                    "time_field":"time",
                    "time_format":"yyyy-MM-dd HH:mm:ssX"
                }
            }""");
    }
    public void testCantCreateJobWithSameID() throws Exception {
        String jobTemplate = """
            {
              "analysis_config" : {
                    "detectors" :[{"function":"metric","field_name":"responsetime"}]
                },
              "data_description": {},
              "results_index_name" : "%s"}""";
        String jobId = "cant-create-job-with-same-id-job";
        putJob(jobId, String.format(Locale.ROOT, jobTemplate, "index-1"));
        ResponseException e = expectThrows(
            ResponseException.class,
            () -> putJob(jobId, String.format(Locale.ROOT, jobTemplate, "index-2"))