This won’t help you recover during a freeze or crash, but it may help find the cause…maybe.
Try running Steam from a terminal, and see if the game gives any output when crashing. I’d put the game in window mode so I can see the terminal and the game at the same time, in-case you lose control over the system. See if the terminal shows any errors.
Usually, when my computer starts to freeze up, it’s because the disk IO is saturated. I moved my Steam library to a different drive than my OS, and that hasn’t happened since. The interface really shouldn’t freeze just because the drive is busy, but that’s what I did to fix it. Don’t know if it’s a GNOME 3 problem, a Fedora problem, or something else.