Hola:
No he intentado nunca actualizar una app con mi propio código, sólo he usado
Appupdate, aunque ya indicabas que no querías otra librería, creo que es sencilla de implementar. Y si no, puedes ver su código fuente para ver cómo hace la instalación. Aunque creo que sería un poco "reinventar la rueda", ya que esa librería lidia con bastantes cosas, no hay más que ver que tiene que poner permisos en el manifest como PACKAGE_REPLACED, o comprueba que tengamos permisos para instalar otras aplicaciones.
Por otro lado, supongo que solo con el código que has puesto poco se puede intentar adivinar. Sube un proyecto sólo con tu código de actualización que podamos probar, y será más fácil ayudarte.
Efectivamente y si no me equivoco, eso es para desde una app, instalar otra. Por ejemplo, lo que hace B4A-Bridge para instalar tu app cuando compilas.
saludos,