Eu uso e recomendo o 4.2.1 no 3G.
Vou explicar e mostrar como faço para te-lo rapidao.
Não vou entrar no merito da instalção, isso cabe em outro post.
REPITO.

Esse post não deve ser tentado por quem nao tenha um minimo de experiencia em JAILBREAK.
E nao vou sequer responder a duvidas inerentes ao processo abaixo.
Estou resumindo o que eu fiz no meu ATC.

Quem conhece bem os iDevices entenderá perfeitamente o que fiz aqui.
VOCÊS FORAM AVISADOS.
Vamos lá!!!!!
eu baixo o iSpirit, a firmware 4.2.1, o redsn0w_win_0.9.6b6, o tinyUmbrella para salvar as SHSHs do iphone.
Primeiro eu salvo os SHSHs do iphone para ficar tranquilo.
Depois disso eu baixo a firmware 4.2.1(8c148)
Baixo o redsn0w 0.9.6b6.
Tudo isso dentro de uma pasta.
Cerifico de que o itunes está funcionando corretamente, idem para o redsn0w e tinyumbrella( nao gosto de correr riscos).
Abro o iSpirit e na tela esquerda vou deletando de baixo para cima, todas as pastas do iphone. ( nao se preocupe, as pastas essenciais do seu iphone nao serão deletadas)
Nesse ponto nada que nao seja do iphone ficara no seu aparelho. ( resto de versoes, logs, aplicativos, nada).
Feito isso mato o iphone segurando os dois botoes e quando ele fecha, eu solto o power e continuo segurando o homescreem( para entrar em DFU).
Abro o tinyumbrella( tem que ter SHSHs salvo no pc para restaurar e ativa-lo oficialmente na apple) ativo o TSSERVER e minimizo o tiny.deixo marcado a opção de obter SHSH via cydia.
Abro o itunes, espero reconhecer ele em DFU e usando SHIFT + RESTORE, passo a firmware 4.2.1.
Aguardo terminar e como eu tenho SHSHs Salvo ele conecta com a apple e ativa o meu iphone legalmente.
Depois abro o redsn0w e passo a mesma firmware 4.2.1 nele e ja era.
iPhone 3G 4.2.1 rapidão, estavel e sem sustos. E numa instalação limpissima.
É isso.