There was indeed an issue in the Linux kernel (which only occurred in combination with iwd). There is a patch (not by me) linked in my response on the GitHub Issue that resolves the DHCP issue.
I am now back to finding out what causes the invalid-key issue. So far, what I was able to find out is that my dongle enters some kind of failure state after some time (have seen it happen after ~1.5h, but also only after ~18h). In that state the dongle does not seem to send out packets anymore.
If I manually (try to) (re)connect to a wifi network dmesg output shows three tries and that the handshake timed out, iwd logs the authentication timeout and responds a failed connection attempt to connman which it interprets as it being an invalid key.
Judging from a packet capture via Wireshark, when in the 'failed' state, it looks like the dongle is not actually sending out authentication requests.
Unfortunately it's a little hard to diagnose this issue as
1) I don't have a known good/bad state to compare/bisect
2) It takes (potentially) a lot of time to replicate the issue
3) I can't be certain it's actually gone if it has not happened after x hours/minutes
I'm currently testing with wpa_supplicant. So far (~22h) it has not failed yet, which aligns with previous reports and with what chewitt mentioned about wpa_supplicant fixing the issue.