There's a bunch of people in SO asking for this feature under various guises.
The most typical scenario where this could safely be used with low risk is prototyping and tweaking some sort of engine with either high startup cost or more likely, to study behaviour if something running in the engine (like rules) is buggy and to exhibit the bug, a lot of things has to happen and it's possible you don't encounter the bug always. (eg. perhaps the engine had some input which was not recorded and you couldn't get it back to the same state) That is the case where having this could save weeks of debugging time, atleast would have in my case.
The particular issue in stopping the engine is that the engine may be recording data and could risk timeouts and such with external services it gets data from causing need to reinitialize - and those external services in my case forbid from doing so frequently. (yeah one can workaround that - I'd prefer to avoid the complication if it's not critical to the project - and if you find a need for this later in a project then adding it could pose challenges)