Though I used Leaflet in my webGIS application, OpenLayers has much more advantages over Leaflet. For example if you want to use your application in mobile devices, OpenLayers is a must for the time being.
But after I developed an application with Leaflet, now I say I wish I had used OpenLayers at the beginning. Because when your application becomes complex (such as calling complex layers from a database, developing a robust mobile application, etc.) , Leaflet starts to limit your abilities. So, I think spending a little more time to understand and learn OpenLayers structure at the learning stage will eventually worth it.
As the project details considered;
Use the map interface to fetch Feature Info:
Both Leaflet and OpenLayers can perfectly do that. The point here is to get the click event's coordinates and send request to the server. The request link will be the same for both applications.
Create a customized tool that takes the lat/lon from user as to where he/she clicks on the map and then fetches the Climate Data from the raster (which is handled by a py script on the server):
I achieved that myself in Leaflet (I was also calling the climate data by the way). I wasn't fetching the raster data from a server but the point here is to create a request link, which is easy for both applications. However if you want to select a polygon at this stage it is a bit hard on Leaflet to achieve.
Allows user to upload excel, which is sent to the py script, which returns a GeoJSON, which creates Vector Features on the map:
Approximately the same line of work for both Leaflet and OpenLayers. I can't say which one is better.
Allow user to create vector polygons, which will fetch the Features it intersects from the WFS Layer:
Fetches Layer from the PostGIS Datastore on GeoServer and displays the layers on the map:
Definitely OpenLayers is better for this job as it is easier to connect PostGIS server.
By the way, there is an application suite called OpenGeo Suite that includes OpenLayers, GeoServer and PostGIS; which will solve all the problems a web based GIS application developer has.