### Description

Currently, when the event loop is blocked for more than 0.2 seconds, an error message is logged to the Triggerer notifying the user that the async thread was blocked, likely due to a badly written trigger. 
The issue with this message is that there currently no support for async DB reads. So whenever a DB read is performed (for getting connection information etc.) the event loop is blocked for a short while (~0.3 - 0.8 seconds). This usually only happens once during a Trigger execution, and is not an issue at all in terms of performance.
Based on our internal user testing, I noticed that this error message causes confusion for a lot of users who are new to Deferrable operators. As such, I am proposing that we change the log level of that message to `INFO` so that the message is retained, but does not cause confusion. Until a method is available that would allow us to read from the database asynchronously, there is nothing that can be done about the message. 

### Use case/motivation

![image](https://github.com/apache/airflow/assets/103602455/201a41c7-ac76-4226-8d3a-7f83ccf7f146)
I'd like the user to see this message as an INFO rather than an ERROR, because there it is not something that can be addressed at the moment, and it does not cause any noticeable impact to the user.

### Related issues

_No response_

### Are you willing to submit a PR?

- [X] Yes I am willing to submit a PR!

### Code of Conduct

- [X] I agree to follow this project's [Code of Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)

"""
        Drain the to_cancel queue and ensure all triggers that are not in the DB are cancelled.
        This allows the the cleanup job to delete them.
        """
        while self.to_cancel:
            trigger_id = self.to_cancel.popleft()
            if trigger_id in self.triggers:
                
                self.triggers[trigger_id]["task"].cancel()
            await asyncio.sleep(0)
    async def cleanup_finished_triggers(self):
        """
        Go through all trigger tasks (coroutines) and clean up entries for ones that have exited.
        Optionally warn users if the exit was not normal.
        """
        for trigger_id, details in list(self.triggers.items()):
            if details["task"].done():