First patch is conceptually good. Please add the code to existing dlls/msvcrt/except_ARCH.c files instead of adding new ones. I'm also expecting that the change should be added to all C-runtime versions.
2nd and 3rd patch is wrong. It's vccorlib140 job to release the extra reference and there's no way of doing it correctly from vcruntime140.dll. It looks like there are still some more problems that we didn't debug yet but patches 2 and 3 are not going in good direction.