но обычно timeout exception настроен на 30 секунд. И так ваш пользователь либо не узнает, что произошел таймаут, или узнает об ошибке, что за 10 секунд не смогли отправить, но ведь могло отправиться за 20 секунд
ну 10 сек достаточно, таймат устанавливается у http client. Если за 10 сек не отправилось, то и за 20 вряд ли отправится в большинстве случаев. Хм но в общем случае вы правы, лучше в сервисе делать.