Все обработчики называются wrapper
Обработчики событий регистрируются по имени функции: HANDLERS[func.__name__] = func.
После того как на них повесили log_call, в реестре остался один ключ "wrapper",
и обработчики затирают друг друга. Исправьте декоратор log_call (реестр и регистрацию не меняйте).
Два декоратора над функцией применяются снизу вверх: сначала log_call, потом register —
то есть on_paid = register(log_call(on_paid)).
Подсказка 1 из 2
register получает уже обёртку от log_call — у неё своё имя.
Подсказка 2 из 2
functools.wraps(func) над wrapper.