When you say "crashed", do you mean "stops responding"? Hammer tends to do that when compiling large and/or complex maps, but it doesn't mean it's stopped working. You just gotta leave it alone to do its thing.
Mka esure you are func_detail-ing properly, as it will decrese the amount of visleafs you have, and large amounts can cause compile times to take, like your saying, 2 hours or even longer.
Here is a good tutorial about BASIC optimization (there is another that goes more in-depth, but this is what you need for your problem):
View: https://www.youtube.com/watch?v=mIy0Usc8zXU
Except all CompilePal does is add a GUI to the compile process. It still uses the same VBSP, VVIS and VRAD executables Hammer uses when pressing F9 in Hammer. If you want to do stuff while compiling, add a -thread *insert how many threads you want the compiler to be using, so if you have a quad-core with hyperthreading you put 7 here* option to the VVIS and VRAD's compile stages. You can leave it off of VBSP, as it doesn't take long to do its work.5 seconds? FIVE SECONDS?
Anyways,you could try CompilePAL for that compiling. It can also pack your map with custom content. And it will show a progress bar right under your Windows bar... And it won't stop you from doing other things (unlike hammer,that can sometimes lag your computer... at least for me)
https://www.mapcore.org/topic/17647-compile-pal-easily-configurable-source-map-compiling/