Igor's right, in that you'll need to poll the container. I just wanted to clarify something. When you said:
run a worker process somewhere that pings the container's contents on a regular basis to look for changes
The worker process may be a thread in a Web Role or Worker Role, the Run() loop, etc. It doesn't require a separate role. Just make sure your polling code works with multiple role instances (e.g. you may want to do some type of page blob lease as a mutex, to make sure you're polling from only one instance). You can also do this via Azure Queues, since queue messages now support an invisibility timeout upon message-creation.