Can the external contributors claim financial compensation? Since they own the code they wrote, and I'm using it for my own profit.
It is doubtful, but there are issues you should be aware of.
With no CLA and no due diligence, you have no way of knowing that your contributors actually own the copyright to the code they submit to you. If they do not, then they are unable to release it under GPL, and your project is infringing on some third party's copyright (e.g. the contributors' employers). This is likely to go unnoticed until you try to monetize, because unlike with trademarks, there is no legal mandate (at least under US law) to enforce copyright uniformly, so copyright holders can pick and choose who they want to sue and who they want to ignore. They may not even be aware of your infringement until well after you have launched.
If one day I decide to sell the whole license to some external party (that is, change the license holder to their name, and let them do whatever they want), should I get the agreement of all external contributors?
Yes, you must get the agreement of all external contributors before changing the license. If the third party will not change the license, then you can sell your "share" of the copyright without obtaining permission.
In principle, you or the new owner might be able to argue that the use of very small amounts of code from minor contributors is de minimis and therefore non-infringing, but this is a complicated legal argument that has to be decided on a case-by-case basis in court. You do not want to go to court. It is unbelievably expensive and time-consuming. So it's much easier to just ask for everyone's agreement up-front.