You're coming to my town !
Weather wise, it really gets much nicer from May onwards, April is still a little cold and depending on the years early May could still be gray. I personally love September and October, in my opinion that's the best time to be in town. There's less of the July crowds and high summer humidity but still lots to do in town.
Like someone else mentioned, if you like jazz you'll be served, even if you miss the (THE) festival, there's still tons of places that play live music at night. Most museums are downtown, some galleries in the Mile End area. If you're here in the summer festivals are all over the place, including Ile-Sainte-Helene.
For interesting neighbourhoods there's the (gentrified) Plateau area, lots of trendy cafes/shops, interesting for photography, I prefer the Mlle End area and Little Italy to the north, interesting with less hipsters. Don't forget the gigantic parc-on-a-mountain, designed by F.L. Olmsted (Central Park). American tourists love the Old Port area which is super touristy, downtown is fun to walk around and shoot. It's a very walkable city, just take the metro a couple of stops and you can spend the day on your feet.
For food/drinks, we're blessed with so many communities you can really try a little of everything, from inexpensive mom-and-pop shops like the ones in my neighbourhood to trendy places. Indian/Pakistani fares in ParkEx, Vietnamese in Cote des Neiges, French/Italian mostly Plateau, Portuguese/Greek near Mile End, Chinese/Korean in Chinatown, Persian/Middle-Eastern along downtown. Great microbreweries in St-Charles and Mile End areas. For Montreal classics: smoked meat at Schwartz's (St-Laurent) or Lester's (Bernard), poutine at Banquise (Rachel) or Poutineville (Ontario), Joe Beef, Au Pied de Cochon, Toqué (personally never been), Bagels at Fairmount (on Fairmount) or St-Viateur (on St-Viateur)
If you're here in summer don't forget the markets, there's so much stuff at Jean-Talon and Atwater and other smaller neighbourhood markets
Sorry for information overload 😀