Yes, but after get_request, you've got some data saved in your session (I'd assume that's the case for any multi-step flow over http). Now how do I guarantee that when I "continue" from step 2 and then "cancel" from step 2, I still have the correct session state to act on step 3?
That depends on the integration between the web server and the test framework. In this case the framework is rolling back some in-memory database. If the session state is in that database, you're good to go. Otherwise the framework needs to track whatever else you're using for session state and roll it back like it does the database.