500 GB is not large these days.
You should first try to get the schema definition right. Try to migrate without the data, that will be fast, and you can debug the migration of indexes, constraints, views and stored code. Once you have that, try to migrate the data (but of course you migrate the data before creating constraints and indexes).
I have no experience with the tools available, but you could investigate mysql_fdw. A foreign data wrapper has the advantage that you can migrate data in one step, without the need for intermediary storage. Also, it is easy to migrate several tables in parallel.