Would something like max_logical_wal_senders also be needed for your purpose? Otherwise, logical replication connections could exhaust max_wal_senders and prevent physical replication connections from being established.
That said, adding two separate GUC parameters (i.e., max_logical_replication_slots and max_logical_wal_senders) for this purpose doesn't seem like a great solution, though...
That's a great point! I'm thinking we could potentially avoid introducing a separate max_logical_wal_senders GUC by reusing max_logical_replication_slots to decide whether a WAL sender can start for logical replication.
This way, the limit on logical slots would also indirectly cap the number of logical WAL senders, helping protect physical replication connections without adding another configuration parameter.