Importing Contacts, Memberships and Contributions in 2020
The "normal" import tools tend to focus on a single entity (contact, contribution membership, participants...) indeed, so as you identified, it needs several separate imports and trying to find some common keys so civi knows how to link them

If you have complex/composite structures to import, it might be easier to write a simple php script that calls all the needed apis to create the entities. If you are familiar with php and the civicrm apis, it might be simplier (and it makes it way easier to "replay" the import)

good luck!