Rambam and R' Hai Gaon say that Gemara is authoritative because of minhag, but are there other opinions as to the reason? The one that I'm familiar with (or that I most identify with) is the reason that the Gemara is authoritative because it's simply the best index of the actual halacha (and what Chazal said). Is there anyone that takes this viewpoint? Rosh? Rama? Am I being a halachic idiot/outcast on this?
I don't think that this is a bad question at all. I'm aware of two explanations:
The Rambam states in his introduction to Mishna Torah that the Talmud Bavli is binding because כל אותם הדברים שבתלמוד הסכימו עליהם כל ישראל, it was accepted by all of Israel. I understand why you would read this as an appeal to 'minhag', but it could be for a fundamentally different reason. R' Elchonon Wasserman (in Kuntras Divrei Sofrim) explains that the acceptance of all of Israel has the halakhic force of a fully functional Sanhedrin (which is binding as per the Torah in parshas Shoftim). He understands that the Sanhedrin itself is only given this power because it is meant to act as a representative body of the entire Jewish people, so when the Talmud was actually accepted by the entire religious community, following it is equally obligatory.
The Rama (Choshen Mishpat 25:1) takes for granted that one can't argue on the Talmud, and the Gr"a in his comment there provides the source for this rule: 'Ravina and Rav Ashi are the last of horaah' (Bava Metzia 86a), implying that no one after Ravina/Rav Ashi can argue on them (and therefore the Talmud, assuming that they are the final editors of the Talmud Bavli like Rashi there and Rav Sheraira Gaon). However, he doesn't explain why all of the sudden after the deaths of Ravina and Rav Ashi no one could argue on their predecessors. The only explanation I know of for this sudden break is brought down in the name of Rav Y. D. Soloveitchik in Nefesh Harav (by Rabbi Hershel Schachter) who explains that once the main body of the Oral Law was written down (in the Talmud), then the nature of psak changed and cannot be undone.
(These are a bit complex; I'll explain in greater detail if you want me to)