Well, the T-SQL commands (WAITFOR) and the underlying Service Broker infrastructure are necessary but not sufficient conditions for making QN happen.
Essentially, for the message to be put in the service broker queue for you to read it using T-SQL, you need two things:
a) You need to tell SQL Server WHAT to monitor. SQL Server doesnt monitor ALL data changes, only the ones for which you request notification. This logic to monitor changes without causing signifcant performance overhead has been abstracted by Microsoft so as not to bother the developers with it.
b) Once SQL Server notices the change, it needs to put a message in service broker queue, which you can then read using T-SQL.
All this is transparently managed by exposing the interfaces in .NET (SQLCacheDependency, SQLDependency and SQLNotificationRequest) to the customers.
Other stuff like - checking for proper permissions, opening a connection to monitor queues etc. is also encapsulated.
Hope this helps!
Sanchan