I once built a project management system wherein user stories and tasks were separate entities with no parent-child relationship. If you wanted to connect them you would have to do so through a feature (basically a group of user stories and tasks).
The idea was that user stories could be created and grouped into features when speccing a project. Then developers could jump in afterwards and populate the features with actual tasks. The estimation would be done on the tasks rather than the user stories.
In the end I didn't really invest the time and ressources to push the idea anywhere, but I still think it's an abstraction worth investigating. That is if it hasn't already been.