MySQL not using the correct index
In my experience 5.6/5.7 is notorious for not spotting the correct index to choose for (range, range) type queries on large tables. You could try an analyze readings to see if it improves matters but I doubt it.

I have seen many examples of a SELECT on a large table filtered with a range drawn from a small list of possible values (your IN (1, 2, 3)) and an additional filter from small range drawn a massive spread of values (your created_dt BETWEEN) ... and at some threshold the planner will always choose to filter on the small list, leading to the results you observe.

The only way I have ever been able to solve this problem is either force the index if I can alter the query, or archive a significant (think 30-40%) chunk of the historical data to have the planner once again begin to choose the correct index.

Mysql 8 might be better, but I haven't any experience with really large tables on it yet.