Is there a way to Delete a page once the unpublish date has passed - programatically?
Ideally - delete it completely bypassing the Trash.
In Episerver 6 R2.
I would say you need to create a scheduled job that checks for pages that are unpublished and deletes them.
If you do DataFactory.Instance.Delete it will bypass the Trash.