In my experience, most hangs with a message about amdgpu loading on screen are caused by an amdgpu issue of some kind. I’d check to see if amdgpu ends up being loaded correctly via lsmod | grep amdgpu
and just a general journalctl -b 0 | grep amdgpu
to see if there’s any obvious failures there. Chances are that even if it’s not amdgpu, the real failure is in the journal somewhere.
Could be a wrong setting of hardware.enableRedistributableFirmware
(should be true) or the new-ish hardware.amdgpu.initrd.enable
(can be either really but either true or false might be more or less reliable on your system).
It depends on if you can feasibly implement compatibility layers for large parts of the “required” but very work-intensive drivers. FreeBSD has the same driver struggles and ended up with LinuxKPI to support AMD/Intel GPUs. I know there’s a whole bunch of toy kernels that implemented compatibility layers for parts of Linux in some fashion too.
It’s a ton of work overall but there’s room to lift enough already existing stuff from Linux to get the ball rolling.