Faits :
A.
Au mois de février 2019, l'Asloca-Genève a déposé plainte pénale pour faux dans les titres commis dans l'exercice de fonctions publiques (<ref-law>) et obtention frauduleuse d'une constatation fausse (<ref-law>; procédure P/2462/2019). Elle exposait que, dans un acte notarié établi en 2009, il était indiqué faussement que l'immeuble concerné était dès sa construction soumis à un régime comparable à la PPE, ce qui avait permis la revente d'appartements par lots séparés selon les règles de la loi genevoise sur les démolitions, transformations et rénovations de maisons d'habitation (LDTR). L'Asloca s'était opposée dans une procédure administrative à certaines de ces ventes et la société propriétaire A._ SA lui réclamait par la voie civile des indemnités pour le retard causé dans ces transactions.
Le 23 septembre 2019, A._ SA a déposé plainte pénale contre l'Asloca pour dénonciation calomnieuse, calomnie et diffamation (procédure P/19545/2019), en raison des accusations d'usage de faux formulées dans une écriture déposée dans le cadre de la procédure civile.
Par ordonnance du 21 avril 2020, le Ministère public a refusé à l'Asloca la qualité de partie plaignante dans la procédure P/2462/2019. Par une seconde ordonnance du même jour, le Ministère public a suspendu la procédure P/19545/2019 jusqu'à droit connu dans la procédure P/2462/2019. L'Asloca a recouru dans un même acte contre ces deux ordonnances, demandant également la jonction des deux procédures.
B.
La Chambre pénale de recours de la Cour de justice genevoise a statué séparément sur ces deux recours. Dans un premier arrêt du 7 juillet 2020, elle a rejeté le recours dirigé contre la mesure de suspension, considérant qu'il était nécessaire de connaître le sort de la première procédure pour juger de la réalité des accusations qui faisaient l'objet de la seconde et permettre le cas échéant à la recourante d'apporter la preuve de la vérité. La conclusion en jonction des procédures a par ailleurs été écartée car elle excédait l'objet du litige, limité à la question de la suspension.
Par un second arrêt, du 17 juillet 2020, la Chambre pénale de recours a rejeté le recours formé contre l'ordonnance de refus de qualité de partie plaignante. Cet arrêt fait également l'objet d'un recours de l'Asloca au Tribunal fédéral (cause 1B_446/2020).
C.
Agissant par la voie du recours en matière pénale, Asloca-Genève demande au Tribunal fédéral d'annuler l'arrêt du 7 juillet 2020, d'ordonner la jonction des deux procédures pénales, subsidiairement de renvoyer la cause à l'instance précédente - plus subsidiairement au Ministère public - pour nouvelle décision dans le sens des conclusions principales.
La Chambre des recours pénale se réfère à son arrêt, sans observations. Le Ministère public conclut au rejet du recours. A._ SA conclut à l'irrecevabilité du recours, subsidiairement à son rejet. Dans ses dernières écritures, la recourante persiste dans ses conclusions.

Considérant en droit :
1.
La recourante demande la jonction de la présente cause avec la cause 1B_446/2020 concernant la qualité de partie plaignante à la procédure P/19545/2019. Cette dernière concerne une procédure distincte; les parties sont également différentes, de même que les questions à traiter. Une jonction ne se justifie donc pas.
2.
L'arrêt attaqué confirme la suspension de la seconde procédure pénale jusqu'à droit connu sur la première. Incidemment, il statue aussi sur la demande de jonction formulée par la recourante. Il s'agit dans les deux cas de décisions rendues en matière pénale au sens de l'<ref-law>. Elles émanent d'une autorité cantonale de dernière instance (<ref-law>) et le recours a été déposé en temps utile (<ref-law>).
2.1. En tant qu'il concerne la suspension de la procédure, le recours est irrecevable. En effet il ne contient ni conclusions, ni motivation sur ce point (art. 42 al. 1 et 2 LTF). En outre, la recourante ne prend pas la peine d'expliquer en quoi la décision attaquée serait susceptible de violer le principe de célérité, ce qui permettrait d'admettre, d'une part, sa qualité pour agir (art. 81 al. 1 let. b ch. 5 LTF; <ref-ruling> consid. 1.1) et, d'autre part, l'existence d'un préjudice irréparable (<ref-law>; <ref-ruling> consid. 2.3 et les arrêts cités).
2.2. L'arrêt attaqué rejette incidemment la demande de jonction des procédures, considérant que cette conclusion présentée dans le recours excédait l'objet du litige, limité à la seule question de la suspension. Sur ce point également, l'arrêt attaqué est de nature incidente puisqu'il ne met fin ni à l'une ni à l'autre des procédures. Il ne peut donc faire l'objet d'un recours au Tribunal fédéral que s'il est susceptible de causer un préjudice irréparable (<ref-law>) ou si l'admission du recours peut conduire immédiatement à une décision finale qui permet d'éviter une procédure probatoire longue et coûteuse (<ref-law>). Cette dernière hypothèse n'entre pas en considération en l'espèce. L'<ref-law> suppose, en matière pénale, que le recourant soit exposé à un dommage de nature juridique, qui ne puisse pas être réparé ultérieurement par un jugement final ou une autre décision qui lui serait favorable (<ref-ruling> consid. 1.3.1). Il incombe au recourant d'expliquer en quoi la décision incidente est susceptible de lui causer un tel dommage, à moins que celui-ci ne fasse d'emblée aucun doute (<ref-ruling> consid. 2.2).
La recourante soutient que le refus de joindre les procédures l'empêcherait de se défendre de l'accusation d'infractions contre l'honneur puisqu'elle ne pourrait participer à l'instruction de la cause susceptible d'établir la véracité de ses affirmations. Le principe d'égalité des armes (art. 6 par. 1 CEDH) serait également violé puisque A._ SA pourra faire valoir son point de vue dans la première procédure, sans contradiction possible de la part de la recourante. Cette dernière affirmation est toutefois erronée, A._ SA n'étant en l'état pas partie à la première procédure pénale (cf. arrêt 1B_446/2020 relatif à la qualité de partie). En définitive, la question de l'existence d'un préjudice irréparable peut demeurer indécise compte tenu de l'issue évidente de la cause sur le fond.
3.
La cour cantonale a considéré que la conclusion tendant à la jonction des procédures pénales excédait l'objet du recours, limité par l'ordonnance attaquée à la suspension de la première procédure. La recourante relève qu'elle avait requis la jonction des causes par courrier du 25 février 2020. Le Ministère public aurait ignoré cette demande dans sa décision, violant par là l'art. 29 al. 2 Cst.
3.1. La recourante n'expose toutefois pas, comme l'exige l'<ref-law>, en quoi l'arrêt cantonal violerait le droit. Contrairement à ce qu'elle semble soutenir, l'absence de décision de la part du Ministère public sur sa demande de jonction n'était pas assimilable sans autre à un refus qui serait directement attaquable. Au contraire, l'art. 393 al. 2 let. a in fine CPP prévoit que le recours peut être formé pour retard injustifié, ce qui inclut tout comportement de l'autorité refusant de statuer sur une requête qui lui est valablement soumise (STRAULI in: Commentaire Romand CPP, 2e éd. 2019, n° 7 ad art. 393). Si la recourante entendait se plaindre d'un refus du Ministère public de se prononcer sur sa demande de jonction, il lui appartenait donc de saisir la cour cantonale d'un recours pour déni de justice, désigné et motivé comme tel. La recourante ne pouvait dès lors se contenter de soumettre sa demande de jonction directement à la cour cantonale par le biais d'un recours dirigé contre des décisions relatives à d'autres questions (qualité de partie plaignante et suspension de la procédure). Sur ce point, l'arrêt attaqué ne viole pas le droit d'être entendu et ne consacre aucun déni de justice.
3.2. Le refus d'entrer en matière sur la demande de jonction étant justifié, il n'y a pas à se prononcer sur les arguments soulevés sur le fond. Comme le relève la cour cantonale, le droit d'être entendu de la recourante devra être respecté à la reprise de la procédure qui la concerne (art. 3 al. 2 let. c CPP et 29 al. 2 Cst.) et rien ne permet de penser d'emblée que tel ne sera pas le cas.
4.
En tant qu'il est recevable, le recours doit être rejeté. Conformément à l'<ref-law>, les frais judiciaires sont mis à la charge de la recourante qui succombe. Celle-ci devra en outre verser à l'intimée A._ SA une indemnité de dépens (<ref-law>).

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté en tant qu'il est recevable.
2.
Les frais judiciaires, arrêtés à 2'000 fr., sont mis à la charge de la recourante.
3.
Une indemnité de dépens de 2'000 fr. est allouée à l'intimée A._ SA, à la charge de la recourante.
4.
Le présent arrêt est communiqué aux mandataires des parties, au Ministère public de la République et canton de Genève et à la Cour de justice de la République et canton de Genève, Chambre pénale de recours.
Lausanne, le 27 avril 2021
Au nom de la Ire Cour de droit public
du Tribunal fédéral suisse
Le Juge présidant : Chaix
Le Greffier : Kurz