Você precisa conceitualmente separar o Ubuntu do upstream, mesmo quando o branch upstream estiver hospedado no Launchpad. A grande maioria dos pacotes no Ubuntu tem sua ramificação upstream hospedada em outro lugar completamente (ou seja, GitHub ou SourceForge). Um projeto upstream hospedado no Launchpad pode ter um relacionamento mais próximo com o Ubuntu, mas deve ser tratado essencialmente como qualquer outro projeto upstream.
O Ubuntu redistribui o software upstream normalmente apenas fazendo alterações quando necessário para a integração com todos os outros softwares que enviamos. Na maioria dos casos, a melhor opção é corrigir os erros no envio. Dessa forma, a correção atinge a maioria das pessoas. Isso também reduz a carga no Ubuntu, não tendo que manter as modificações locais.
Então, idealmente, o processo parece sua primeira opção. Você conserta o bug no upstream, o upstream faz um novo lançamento e o Ubuntu atualiza para essa versão. Como você percebeu, as coisas nem sempre funcionam assim.
Às vezes, os cronogramas de lançamento do Ubuntu e de um projeto upstream podem não estar alinhados. Digamos que você tenha encontrado e consertado um bug que gostaria de ver no próximo lançamento do Ubuntu, mas o Ubuntu está lançando em três meses e o upstream não tem idéia de quando será seu próximo lançamento. Em uma situação como essa, a melhor abordagem é consertar o bug do upstream, mas voltar ao release no Ubuntu como um patch específico do Ubuntu. Este também é o caso quando estamos corrigindo uma versão estável do Ubuntu, onde provavelmente não poderemos incluir uma nova versão original.
Às vezes, o Ubuntu leva as alterações para o upstream. Se o bug estiver nessas mudanças, a correção deve ir diretamente para o Ubuntu. Isso inclui problemas em coisas como a embalagem.
É improvável que novos recursos sejam aceitos no Ubuntu, a menos que já tenham sido aceitos no upstream. Frequentemente, aceitamos patches corrigindo um problema específico antes que ele seja aplicado a montante em prol do projeto maior, mas normalmente não gostamos de nos desviar do upstream em termos de design ou funcionalidade.
Eu sei que basicamente estou dizendo que depende, mas isso acontece!