If you'd like to check out new tools, Tixit is an extensible project management system that's just starting out. It could even be an interesting way to experiment with project management techniques. In Tixit, you can build and modify your own custom layouts for tickets, and (if you have someone that knows javascript) you can even write plugins that you can use in those layouts. Letting college students play around with different configurations could be an interesting way to teach them how different types of PM workflows work. Check it out at https://tixit.me - I'd be happy to help get things rolling if you're interested.
You might want to check out Tixit (https://tixit.me). Tixit has the ability to have infinite levels of subtickets, so it might be what you're looking for with regards to a "hierarchy of features". I don't know any other PM system that makes it easy to work with more than 2 levels of tickets. Its also extensible, so if there's a missing feature you need and you know a little javascript, you can write your own plugins you can add to your ticket layouts.
You might want to check out Tixit (https://tixit.me). Its an extensible project management system with the ability to have infinite levels of sub-tickets - which can make it a lot easier to organize a project by breaking things down into small tasks or include related items. There's a time-tracker plugin available for it, which you can add to your ticket layout: https://github.com/cookiesncream716/timeTracker . Feel free to PM me if you're interested in trying that out - I'd be happy to help.
I'm curious to know more about what you need in terms of building up specs. Are your specs just Text (i'm trying to figure out where Trello's failing you).
I'm part of Tixit, which has built an extensible project management application you might want to take a look at. You can give your clients access to specific sub-tickets, which would allow you to have them sign off on things through the application.
We're just starting out and open to prioritizing the development of features that users like you need to start using our application. Feel free to PM me if you wanna chat, or check us out at https://tixit.me
Building anything but the most basic collaboration tool is a lot more work than you might think.
This might not be what you had in mind, but you could try building your product on top of Tixit (https://tixit.me). Tixit is an extensible project management platform that allows you to build and share plugins, and use those plugins (and ones others have created) to create custom layouts.
I'm the founder of Tixit, and I'd be happy to help you build on top of our system. We're just starting out and need innovative users like yourself. We'll soon be coming out with a package marketplace where you can charge money for interfaces you create within Tixit. If you're looking to make money with the system you want to build, I'd love to help you do that in Tixit. PM me if you wanna talk.
You could try Tixit. Its free and lightweight, and has infinite levels of subtasks. I don't know any other PM tool that allows you to easily manage more than 2 levels of tickets. Check it out at https://tixit.me
Well if you're looking to try out a new project management system, Tixit has unlimited levels of sub-tickets, making it really easy to have a deep hierarchy that encompasses executive level, program level, project level, and task level items (and any level of depth you need).
It's a new system and doesn't yet have a ton of features (eg doesn't yet have risk analysis features or much in the way of reporting, other than a velocity chart), but if you have some dev resources, you can create any critical features you need in just a few days. https://tixit.me
But if you like Upland, you might wan to check out Smartsheets. I've never looked much into Upland, but it looks a lot like Smartsheets, and I've heard a lot of praise for Smartsheets.
One thing your list doesn't mention at all is extensibility. You mention customization of workflows for a couple products, but this is a small portion of the type of customization that can be done. For example, self-hosted Jira has a powerful extension system where users can build plugins in Java (downside.. its Java).
Another extensible system is Tixit: https://tixit.me . Users can build plugins in javascript, upload them to the system and share them with the rest of the Tixit community. Plugins like that can be incredibly helpful to creating an efficient project management flow. Tixit will soon have the ability for users to share entire sets of interfaces (called Packages) they can create within the application, so that most users don't have to start from scratch, but rather find a package that works well in the package library and customize from there (if they need/want to).