As you probably have noticed, you can attach voter filters to a team, so that activists on that team, or on teams below that team, can only add voters to their contact lists who satisfy that filter. Voter filters can also be attached to operations. What's the difference? When a voter is on a contact list on any team under a given operation, that voter is not available to any other contact lists under that operation. However if you have more than one operation, then you can have each voter checked out once under each operation. So you could have a supporter identification operation and a fundraising operation, and they could be contacting the same pool of voters.
You can also attach voter filters to questions on a questionnaire (questionnaire sections, actually). You could have a question "do you support X for mayor?", and set the filter to have that question appear on the contact sheet for voters who live in the city. You could have a question "do you support Y for city council from Ward 3?", and set the filter so that only voters eligible to vote in Ward 3 will be asked that question. This allows one organization to handle up and down-ballot races, for example.
So the organizational slicing and dicing can be accomplished in two ways. The first is about how you divide voter contacts amongst your activists. The second is about what you actually do when you contact a voter.
Something that is confusing in AdvoKit is the term "campaign". The original idea was that one could run multiple independent campaigns, each with its own voter file, in a single instance of AdvoKit. However, this was never implemented and I would not recommend creating more than one campaign within an instance of AdvoKit.
Tasks handling (e.g. lawn sign requests, candidate visit requests) is not constrained by the organizational structure you have set up in AdvoKit. Anywhere you create a job that has task handling responsibilities for a particular type of task will see tasks of that type in its task queue. For ease of keeping track, I'd recommend putting task-handler jobs in a separate part of the organizational structure (e.g. their own operation), but they can be anywhere.