Hey I found a solution! But it was different than what was listed before, so please point people to this post if they can't delete a BPF.
I had two dependencies stopping me from deleting the custom BPF but the Solution Customizer wouldn't tell me what they were (neither the Classic nor the PowerApps version).
I did a lot of digging and found them. The key is that a BPF Process won't correctly report its dependencies, because it's main dependency is the BPF entity that it automatically creates and is supposed to be hidden.
So to see the real depencies for a BPF, you have to find its Entity and show its dependencies.
In my case the first was the 1:N relationship between "Work Logs" (my custom entity) and the corrupt BPF entity. That relationship in turn was depended upon by the Default Public View inside the corrupt BPF entity. It contained a lookup column to the Work Logs entity (another custom entity that "hosted" the BPF). I tried deleting the lookup column, but that wasn't enough, I had to create a throwaway View, set it as the Default Public View, and then delete the original View. Then I was able to delete the relationship.
The second was a Model Driven App I had created. Even though I removed all references to the corrupt BPF, the BPF entity still listed it as depending on it. So I bit the bullet and deleted the model driven app.
After that, I was able to delete the corrupt BPF process, which automatically deleted its corresponding entity.