Since multiple SqlDependency instances are being created, I would check for Duplicate Subscriptions, as outlined here. The subscriptions may be considered duplicates depending on your configuration. The behavior "means that if a notification is requested for identical queries, only one notification is sent."
Another thing to check is whether the OnChange event could actually be working, but not appear so due to it firing on a different thread. The multi-threaded nature of SqlDependency is noted here.
The Profiler trace indicates the Service Broker is doing its job. Adding additional tracing in the .NET tiers would show if the subscription is firing at the database level, but not resulting in the OnChange event firing. Additional troubleshooting tips can be found here.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…