My guess is that you aren’t hitting the {$old_status}_to_{$new_status}
action, which is what you are hooking to with draft_to_published
– for new posts there is no guarantee that the “old” status is actually “draft”. Have you tried using the {$new_status}_{$post->post_type}
action, which in your case would be publish_status
?