Background: We have long running product development project, which consists of different features. The development team consists of 15 developers and 5 QA engineers. We setup releases each 5-7 month. Each release we either add new features or enhance/existing features. Each release consists of 6-8 development sprints (3 weeks each) and 2-3 pure stabilization/bug fix sprints.
Issue: Some of features take several months and more to complete development to be at minimum level of deliverable or production ready stage. We do split them into small tasks and progress developing them in each sprint, but it ready for first demo only after 2-4 sprints and ready for QA/production after 5-8 sprints. Those features are complex and generally consist of developing new or enhance infrastructure, core/services, business logic, UI, Web and then integration in monitoring, reporting, printing, marketing and etc. Before these all done the feature cannot be considered as done (production ready). On the other hand in same release we have small features or enhancement which are much smaller and can be production ready in single sprint or two... Those long running features prevent from us to release product in smaller chunks since they takes much more sprints to be production ready rather the others.
Question: Any idea/advice what could be better approach if we would like to make our releases shorter?