Avoiding page loop

I would highly recommend you to make one of those wp query calls the main query & all others as secondary queries. That will make your life much easier in the long run.

If you absolutely want to disable the main query, wordpress doesn’t have a direct filter for that. You can however do a trick to achieve that
1) hook into parse_request action
2) Examine the request variables to determine if you are on the correct page
3) If you are not on the correct page, use return; & let wordpress go its normal route
4) do your custom wp query calls & output the HTML
5) use die(); to stop php execution

This should work, however you should note that, since wordpress never got a chance to populate the global variables, accessing them directly or via some core wordpress function will have unexpected results. Next, some plugins may also have problems. Make sure you carefully test all of the code you’re using.