My impression is that 町 tends to be used for smaller cities and 街 tends to be used for larger ones. Is this correct? If not, what is the difference?
That is correct. According to 文化庁, 町 is similar to
town whereas 街 is similar to
avenue. 街 can also refer to a developed town with lots of streets and avenues, so to say.
For example, you can say センター街 (center-gai), but not センター町 (center-cho). This is because センター街 refers to "streets with small businesses". If there was a センター町, hypothetically speaking, a Japanese would imagine some area where small businesses are scattered here and there, rather than an area with a few streets with small businesses packed together.
Hence the different usage.