one of the patterns we discussed in the past (and I'm not really sure we are consistent everywhere) was that tasks in `deploy.yml` would stop the service in the beginning, do whatever tasks are necessary to update the code, virtualenv, etc. and then start it at the end.  Tasks in `main.yml` would use the notify handler to restart the service when there were changes.  I'm not sure what is best to do here, I think the same pattern would work though it would force the app to stop and start even if there isn't a change.  Using notifies in `deploy.yml` means that tasks are run while the app is running as well.