Handling SIGTERM can deadlock because RequestExit() can log stuff. If we happen to be in the malloc at that time of receiving the signal this is going to deadlock the process. In general, we should only use signal safe POSIX functions in handlers.
Not easy to reproduce but things to check for:
1) Start UE4
2) Press Ctrl+C in the terminal after it's up
3) Check that RequestExitWithStatus prints but is not part of a UE_LOG output
4) Wait until the end and check that RequestExitWithStatus prints in the UE_LOG with an exit code
There's no existing public thread on this issue, so head over toAnswerHub just mention UE-36663 in the post.