Regarding long-term projects/tasks. There are a number of things you can do. Firstly, you can break up a large task by adding subtasks/issues to a parent issue. The overall progress of the task is calculated by the progress of its subtasks.
For long-term planning, the roadmap/versions come in handy. You can create versions (like work packages) with due dates and assign issues to them. The Roadmap tab shows the list of planned work packages with their progress, estimated time and time spent on the package. The Gantt chart also shows the versions and their overall progress. I personally have versions for every quarter of the year and one backlog version for collecting future tasks.
Each issue may have a field for the estimated time required. If the issue has subtasks, all the estimated hours are aggregated to the parent issue. You can easily see the estimated and actual time next to each other in the issue list.