### Apache Airflow version

main (development)

### What happened

Airflow has `job_heartbeat_sec` (default 5) that was updated to 50 seconds in our environment. This caused 2 instances of triggerer process running for HA to keep updating triggerer_id since below query takes current time minus 30 seconds to query against the latest_heartbeat. This causes alive_triggerer_ids to return empty list since job_heartbeat_sec is more than 50 seconds and the current trigger running this query assigns the triggers to itself. This keeps happening moving triggers from one instance to another.

https://github.com/apache/airflow/blob/62a534dbc7fa8ddb4c249ade85c558b64d1630dd/airflow/models/trigger.py#L216-L223

### What you think should happen instead

The heartbeat calculation should have a value based on job_heartbeat_sec rather than 30 seconds hardcoded so that queries to check triggerer processes alive are adjusted as per user settings.

### How to reproduce

1. Change job_heartbeat_sec to 50 in airflow.cfg
2. Run 2 instances of triggerer.
3. Make an operator that uses `FileTrigger` with the file being absent or any other long running task.
4. Check triggerer_id for the trigger which keeps changing. 

### Operating System

Ubuntu

### Versions of Apache Airflow Providers

_No response_

### Deployment

Virtualenv installation

### Deployment details

_No response_

### Anything else

_No response_

### Are you willing to submit 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)

"""
        Takes a triggerer_id and the capacity for that triggerer and assigns unassigned
        triggers until that capacity is reached, or there are no more unassigned triggers.
        """
        from airflow.jobs.job import Job  
        count = session.query(func.count(cls.id)).filter(cls.triggerer_id == triggerer_id).scalar()
        capacity -= count
        if capacity <= 0:
            return
        alive_triggerer_ids = [
            row[0]
            for row in session.query(Job.id).filter(
                Job.end_date.is_(None),
                Job.latest_heartbeat > timezone.utcnow() - datetime.timedelta(seconds=30),
                Job.job_type == "TriggererJob",
            )
        ]
        
        
        trigger_ids_query = cls.get_sorted_triggers(
            capacity=capacity, alive_triggerer_ids=alive_triggerer_ids, session=session
        )
        if trigger_ids_query:
            session.query(cls).filter(cls.id.in_([i.id for i in trigger_ids_query])).update(
                {cls.triggerer_id: triggerer_id},
                synchronize_session=False,
            )
        session.commit()
    @classmethod
    def get_sorted_triggers(cls, capacity, alive_triggerer_ids, session):