Sure thing! I can see if that works later tonight.
One thing jumps out at me, though: it doesn't seem valid to redefine the CFA like that? As I understand it, the CFA on amd64 is defined to be the stack pointer in the caller's frame at the time of the call, and you're not allowed to define it otherwise. The reason to use multiple .cfi_def_cfa directives in one function would be to update the CFA *computation* to account for changes to the variables used in the computation (e.g. RSP), but not to actually change the CFA itself.
That said, it's possible that changing the CFA as you propose works just fine in practice. Someone more knowledgeable than me would be better equipped to say for sure.
I should note that I am far from an expert on this topic. Everything I know about unwind tables has been pieced together in the last two days while trying to fix this gccgo test.