Error after deleting Custom Post Type with a function (no trash used)

From looking at the source quite curiously $force_delete argument in wp_delete_post() only applies to native posts, pages, and attachments.

My quick guess would be that for CPTs you would need to use explicit wp_trash_post() function if you want trash behavior.