I'm a non-native Portuguese speaker and type in Portuguese a minority of the time, but probably at least a little bit on most days.
I've become very accustomed to using a Compose key, which doesn't have to be held down but acts as part of a sequence. For example, to type "informação" I would press
i n f o r m a Compose , c Compose ~ a o
where the ~ also involves pressing Shift.
This feels reasonably normal and natural to me, but maybe if I were typing in Portuguese more than I do, it would feel tedious. Have you tried using a Compose key? How do you think it compares with your system or with the system you were using before that?
I think ~, `, and ^ as dead keys could be a problem for people working a lot on a Unix command line, as they all have relatively common meanings to the shell (although the ` is deprecated and many people don't have a strong habit of using the ^). I guess it also depends a bit on what kinds of software environments you're working in and with, since different environments and interfaces have very different punctuation with special meanings.
When I'm on Windows, mapping a key to Compose is actually much easier to do, through the excellent WinCompose utility [2].