It's hard to say if this is "the best way to persist data" for your particular project. I can however address the "possible problems" part of your question.
Session state is stored in-memory by default, which means that you will be using additional resources on your server. Session variables can be created on the fly and do not require you to dispose of them explicitly which can lead to more overhead. So yes you are correct that using sessions for much of your functionality will most likely mean using up more resources (CPU and Memory). Whether it will "run out of memory and crash" is a matter of the load vs. the server.