If citizens propose a charter amendment by petition, who is responsible for the ballot language – the petition sponsors or the city council?

The council. G.S. 160A-104 directs that the council call the special election on the proposed charter amendments, and that includes setting the ballot language. There is not a great deal of liberty in writing the ballot language; G.S. 160A-105 sets out the appropriate language, and the forms included in another part of this web page include appropriate ballot language.