Is there any way to delete a Confluence page and have it delete all of its children at once?
You can do it easily with WebDav. Instructions for installing and setting up the WebDAV plugin can be found here.
Then just delete the directory corresponding to the page!
Yu can do this through the API by basically scripting it yourself.
The SOAP API supports:
So between 1 and 2, you can keep recursively getting children and deleting these pages.
Be careful as this could be dangerous and wipe out lots of pages by accident if you have it start from the wrong page (although Confluence does have a recover feature.)