They ask for one test method to cover the whole extension class and it's methods.
When you're asked to do something specific, go ahead and do it, even if it's not your usual thing. As developers, we are likely in the real world to be told to do something a certain way, even if we don't like it. And we do it, because we like to keep our paychecks flowing.
Should I just call helper/separate test methods from within one test method?
For purposes of this test, yes, that's perfectly acceptable. In fact, any time you write a method anywhere (test or otherwise) that gets to more than about 50 lines of code, you should consider breaking up the method into smaller methods. It'll make your code more readable and manageable.
Do I test each method separately or just call one method at a time then test results?
In the interests of "failing fast", I always recommend that you execute one method, test the results, then do the next method. This way, if your test is going to fail validation (the assertions), it will do so as soon as possible in most cases. This design also typically lets you minimize heap usage, which may be important for algorithms that use a lot of memory.
Is this all completely different for Apex Page Extensions and StandardSetControllers? For example page next, first page etc.
Again, generally yes. Testing one piece at a time will allow the tests to fail faster if they're going to fail. Imagine you have a ten page wizard, but there's a logic error on page 2. If you call all the methods first, you've called ten methods and, let's say, 2 assertions, only to fail. If you validate as soon as possible, you'd have tested just two methods before failing on the second assertion. I don't know about you, but I'd rather fail in half a second than in 5 seconds. All that time spend eventually adds up.
Finally, writing one test per method versus writing one test for everything: they both have practical uses. The former is typically called a "unit test", while the latter is called an "end-to-end test." In the real world, it's helpful to have both. Use "unit tests" (those that test a single method) to verify that a method works. Use "end-to-end tests" to make sure that the entire process works, and to make sure that the entire chain of code being called doesn't exceed governor limits. Both types of tests are useful, so it's unlikely that, in the real world, you'd want to stick to only using one or the other.