github.com/mdempsky/deferfuzz is running into this issue for about 1 in 100 runs. So I've got a bunch of extra test cases if they're useful. They're not minimized though. (I manually minimized the Go playground link above.)
I've taken a look and this looks more complex to fix. I may need to do record more info to know exactly which open-coded defer entries to remove and not remove when a recovery happens (which may be in a regular panic or a recursive panic).
It is not a regression (also broken in 1.15). So, I will keep taking a look at it, but I don't think it needs to be fixed for 1.16 release that is very soon.