So from my findings I think the problem is not 100% kernel related. Found this very helpful thread on media driver repo: https://github.com/intel/media-driver/issues/1342 which explains (if you're patient enough to read it) that the system hang is solved by kernel 5.17+ but the actual hardware transcoding crash is related to ffmpeg (https://github.com/intel/media-driver/issues/1342#issuecomment-1106171903).
Plex doesn't push anything in syslog for me but I've tried emby and managed to get a log identical with the one explained in that thread.
Jun 1 15:02:41 Skippy kernel: i915 0000:00:02.0: [drm] Resetting vcs0 for preemption time out
Jun 1 15:02:41 Skippy kernel: i915 0000:00:02.0: [drm] GPU HANG: ecode 12:4:28fffffd, in ffmpeg [16514]
Jun 1 15:02:49 Skippy kernel: i915 0000:00:02.0: [drm] GPU HANG: ecode 12:4:28fffffd, in ffmpeg [16514]
Jun 1 15:02:49 Skippy kernel: i915 0000:00:02.0: [drm] Resetting vcs0 for stopped heartbeat on vcs0
Jun 1 15:02:49 Skippy kernel: i915 0000:00:02.0: [drm] Resetting chip for stopped heartbeat on vcs0
Jun 1 15:02:49 Skippy elogind-uaccess-command[17064]: Failed to reset ACL on /dev/dri/card0: Operation not supported
Jun 1 15:02:49 Skippy elogind-uaccess-command[17065]: Failed to reset ACL on /dev/dri/card0: Operation not supported
Jun 1 15:02:49 Skippy kernel: [drm:intel_gt_reset [i915]] *ERROR* Failed to reset GuC, ret = -110
Jun 1 15:02:49 Skippy kernel: i915 0000:00:02.0: [drm] *ERROR* Failed to reset chip
Jun 1 15:02:49 Skippy kernel: i915 0000:00:02.0: [drm:intel_gt_reset [i915]] CI tainted:0x9 by intel_gt_handle_error+0x343/0x530 [i915]
Jun 1 15:02:49 Skippy kernel: [drm:__intel_gt_set_wedged [i915]] *ERROR* Failed to reset GuC, ret = -110
Jun 1 15:02:49 Skippy kernel: i915 0000:00:02.0: [drm] ffmpeg[16514] context reset due to GPU hang
Jun 1 15:02:52 Skippy ntpd[1407]: kernel reports TIME_ERROR: 0x41: Clock Unsynchronized
Jun 1 15:02:54 Skippy kernel: Fence expiration time out i915-0000:00:02.0:ffmpeg[16514]:3aa2!
Jun 1 15:04:27 Skippy kernel: i915 0000:00:02.0: [drm] *ERROR* rcs0 TLB invalidation did not complete in 4ms!
Jun 1 15:04:27 Skippy kernel: i915 0000:00:02.0: [drm] *ERROR* bcs0 TLB invalidation did not complete in 4ms!
Jun 1 15:04:27 Skippy kernel: i915 0000:00:02.0: [drm] *ERROR* rcs0 TLB invalidation did not complete in 4ms!
Jun 1 15:04:27 Skippy kernel: i915 0000:00:02.0: [drm] *ERROR* bcs0 TLB invalidation did not complete in 4ms!
Jun 1 15:04:27 Skippy kernel: i915 0000:00:02.0: [drm] *ERROR* rcs0 TLB invalidation did not complete in 4ms!
Jun 1 15:04:27 Skippy kernel: i915 0000:00:02.0: [drm] *ERROR* bcs0 TLB invalidation did not complete in 4ms!
Jun 1 15:04:27 Skippy kernel: i915 0000:00:02.0: [drm] *ERROR* rcs0 TLB invalidation did not complete in 4ms!
Jun 1 15:04:27 Skippy kernel: i915 0000:00:02.0: [drm] *ERROR* bcs0 TLB invalidation did not complete in 4ms!
Jun 1 15:04:27 Skippy kernel: i915 0000:00:02.0: [drm] *ERROR* rcs0 TLB invalidation did not complete in 4ms!
Jun 1 15:04:27 Skippy kernel: i915 0000:00:02.0: [drm] *ERROR* bcs0 TLB invalidation did not complete in 4ms!
Although plex has proprietary transcoding, that's still based on ffmpeg so my thinking is that the same behaviour is happening.
So luckily by upgrading unraid kernel to 5.18 I've solved the freeze problem, the actual hardware transcoding stops working with the above error and I think we need to wait until plex applies the ffmpeg fix into their own server.
I'm using I7 12700k, unraid 6.10.1 with the unofficial 5.18 kernel