There doesn't seem to be a way to unsubscribe from push notifications. The only option is to let it time out.
The Unsubscribe button doesn't actually do anything currently, as Unsubscribe has not been implemented in the managed API. I will implement an Unsubscribe at some point, though it is not overly important as once the listener is closed, the subscription will timeout after a while when Exchange does not receive a response (or cannot connect) to the listener end-point.
BTW, the MSDN documentation recommends to use Streaming rather than push notifications:
If you are using push notifications with Exchange 2010, consider upgrading your application to use streaming notifications, so that you don’t need a separate application to receive the events.
Update
We are also often asked how push notifications timeouts work. Suppose your client subscribed to push notifications, and then unexpectedly goes offline. The server will not be able to push out the next set of events as notifications to the client (or, more importantly, the server will not get a response to its notifications message). Rather than give up right away, the server will retry to push them out up to three times. After the first failure, the server will wait the timeout amount of time (that’s the timeout that you set in the subscription request) and try again. If that attempt fails, the server will wait twice the timeout time and try again. If that fails, the server will wait three times the timeout time and try again. Finally, if the third retry attempt fails, the server will give up and delete the subscription.
Update 2
Outside of the managed API it looks like you can terminate the subscription by returning Unsubscribe in the SubscriptionStatus element instead of OK.
In summary, there are really two ways to end a subscription on a CAS:
- You can send “Unsubscribe” in the response message (as a response to a notifications message from the CAS).
- You can become unresponsive to notifications messages.
We recommend the first method (sending an unsubscribe message) rather than the second method, which causes the Client Access server to perform unnecessary work.
MSDN: SubscriptionStatus
Code Sample (with SubscriptionStatus.OK, so you have to set it to Unsubscribe to get the desired effect): Exchange Web Services .NET > Tutorial > Push event notification