Having a separate issue type makes sense. This allows you to set up different Jira workflows with states for different issue types easily. Having issue types for Epic, Story, Task, and Bug makes sense. However, when you put them onto a board, there doesn’t necessarily need to be a 1:1 mapping between workflow states and board columns. Perhaps, for now, a backlog (or a backlog column), a “to do” or “ready to work on” column, an “in progress” column, and a “done” column may be sufficient. Depending on the workflow associated with each issue type, there could be multiple states inside of each column.
A Story issue may be a good example. The “in progress” column on the board could represent multiple states – coding, testing, waiting to be merged. If you are working alone, this could be fine. However, if you are working with a team, it may be more important to visualize when something is waiting for a code review, so a workflow state associated with work ready for or undergoing a code review may be split out into a different column than working being developed or tested by a developer.
As far as tasks go, I would consider a parent to be started once any subtask is started. I would also consider a parent to be done when all subtasks are done. You can use Jira automation to help this along, as well, and avoid the game of moving tickets around. If you aren’t using subtasks, I’d recommend either using subtasks or just encapsulating all of the work in a single ticket to avoid ticket management hell. Most teams that I work with tend to use subtasks sparingly, unless multiple people will be working on a parent ticket because of the overhead of creating and managing parent and child tickets.