Erwägungen:
1.
1.1. Das Tiefbauamt des Kantons Zürich schrieb Baumeisterarbeiten für den Neubau des Verkehrskreisels C._ in U._ aus. Gemäss Offertöffnungsprotokoll vom 24. November 2020 gingen sieben Angebote ein. Am 24. Februar 2021 erteilte das Tiefbauamt den Zuschlag an die B._ AG zum Preis von Fr. xxx. Ihr Angebot wurde mit 87,3 Punkten bewertet, während das Angebot der A._ AG zum tiefsten Preis von Fr. yyy mit 86,7 Punkten Rang 3 erreichte.
1.2. Gegen den Zuschlag erhob die A._ AG am 12. März 2021 Beschwerde beim Verwaltungsgericht des Kantons Zürich. Nachdem dieses den Vertragsabschluss zunächst mit superprovisorischer Verfügung vom 16. März 2021 untersagt hatte, wies es mit Verfügung vom 22. April 2021 das Gesuch um Erteilung der aufschiebenden Wirkung ab.
1.3. Mit Beschwerde in öffentlich-rechtlichen Angelegenheiten bzw. subsidiärer Verfassungsbeschwerde vom 3. Mai 2021 beantragte die A._ AG dem Bundesgericht, die Sache sei zur Neubeurteilung und zur Erteilung der aufschiebenden Wirkung an die Vorinstanz zurückzuweisen. In prozessualer Hinsicht sei der Beschwerde die aufschiebende Wirkung zu erteilen. Mit Verfügung vom 4. Mai 2021 untersagte das Bundesgericht alle Vollziehungsvorkehrungen bis zum Entscheid über das Gesuch um aufschiebende Wirkung.
1.4. Am 19. Juli 2021 stellte die A._ AG beim Verwaltungsgericht erneut ein Gesuch um Erteilung der aufschiebenden Wirkung der Beschwerde. Das Verwaltungsgericht gab dem Gesuch am 20. Juli 2021 in Abänderung seiner ursprünglichen Verfügung statt, weil die zuerst angenommene Dringlichkeit der Vergabe nicht mehr als gegeben erscheine. Mit Eingabe vom 26. Juli 2021 beantragt das Tiefbauamt, die Beschwerde zufolge Gegenstandslosigkeit abzuschreiben.
2.
Mit der angefochtenen Verfügung wurde die aufschiebende Wirkung im kantonalen Beschwerdeverfahren verweigert. Nachdem das Verwaltungsgericht auf diesen Entscheid zurückgekommen ist und die aufschiebende Wirkung am 20. Juli 2021 gewährt hat, ist der Streitgegenstand des bundesgerichtlichen Verfahrens dahingefallen. Das Verfahren ist deshalb vom Instruktionsrichter (hier: dem Abteilungspräsidenten; Art. 32 Abs. 1 BGG) als Einzelrichter als gegenstandslos geworden abzuschreiben (Art. 32 Abs. 2 BGG).
3.
Es rechtfertigt sich, auf die Erhebung von Gerichtskosten zu verzichten (Art. 66 Abs. 1 BGG). Nachdem die Vorinstanz das Gesuch um aufschiebende Wirkung gutgeheissen hat, weil die von der Vergabebehörde geltend gemachte Dringlichkeit nicht (mehr) vorliege, ist der Kanton Zürich in Bezug auf die Entschädigungsfolgen als unterliegende Partei zu betrachten; er hat der Beschwerdeführerin deshalb eine Parteientschädigung zu entrichten (Art. 68 Abs. 2 BGG). Eine solche steht der Zuschlagsempfängerin nicht zu, nachdem sie sich nicht am bundesgerichtlichen Verfahren beteiligt hat.
Demnach erkennt der Präsident:
1.
Das Verfahren wird als gegenstandslos geworden abgeschrieben.
2.
Es werden keine Gerichtskosten erhoben.
3.
Der Kanton Zürich hat der Beschwerdeführerin eine Parteientschädigung von Fr. 4'000.-- zu bezahlen.
4.
Dieses Urteil wird den Verfahrensbeteiligten und dem Verwaltungsgericht des Kantons Zürich, 1. Abteilung, schriftlich mitgeteilt.
Lausanne, 27. Juli 2021
Im Namen der II. öffentlich-rechtlichen Abteilung
des Schweizerischen Bundesgerichts
Der Präsident: Seiler
Der Gerichtsschreiber: Businger