So then if my application logic catches a thrown exception because I don't want my app to crash every time a server bug is exposed, I should be returning a 200 OK response rather than a 500 Internal Server Error, because the app logic accounts for handling exceptions and returns a response.
I can't disagree more. It just seems like clients would have a nightmare of a time debugging client-side code against such a system.