`notify` or `notifyWith` is actually the method you're looking for here, `progress` is used to attach handlers.

You may want to look at https://github.com/jquery/jquery/blob/master/src/ajax.js#L616-L618 and follow suit so that the ordering of callbacks is maintained, otherwise this would be backwards from the order others are fired.  that would also allow you to delete the call to s.progress below