I'd question the work 'just' in your post.
When you say
all components and pages
then the quantity and complexity very quickly becomes a core question.
Also, I'd suggest it's important to make the point here that it doesn't automatically mean the tool is at fault just because a process takes a long time (although I accept it would be much more useful if we had better/any visibility of that CP was doing at any point in time).
Content Porter (and with that, I mean the associated ImportExport Service) is performing some pretty complex checks when resolving dependencies; not just checking if a component needs including as it's on a page - but (depending on your settings), the schemas being used, that the fields in the component XML match to the schema fields at that point in time and much much more)
How complex is your content model for the items your are importing/exporting?
What's the level of localization?
What the complexity of the Blueprint structure?
What items are you asking Content Porter to dependency check?
If you're looking to move from Content Porter to an app utilising the ImportExport service you're still going to have to understand the content you're moving to best understand how to help the service work most efficiently.
I often find that it real-world scenarios a client will expect you to truly understand the content/assets you are moving through Content Porter and expect you to manage the dependencies - thus allowing you to create a port for Keywords, Schemas, Components and then Templates and then Pages etc.
I'd suggest posting some of your Content Porter settings, perhaps indicate what amount of content you're pushing and the level of nesting within it etc. Then we may be able to spot some simple, quick fixes to assist.