How do I determine what is activating my SQL service broker proc?
Check the queue monitor state in sys.dm_broker_queue_monitors for troubleshooting:

SELECT QUOTENAME(OBJECT_SCHEMA_NAME(queue_id, database_id))  + N'.' + QUOTENAME(OBJECT_NAME(queue_id, database_id)),*
FROM sys.dm_broker_queue_monitors;


Rusanu has a good blog post (Understanding Queue Monitors) that describes the internals of the monitor state machine that seems to be in an unexpected state. Although the troubleshooting section in his post is mostly about the more common problem of activation not occurring rather than visa-versa, you may find the information helpful in researching the cause.

Try toggling the activation status on the queue to see if that fixes things.  Add the code for the activated proc to your question if you need more help.