Here's a bit of a hack using the endnotes
package. I tried to inline some comments.
\documentclass{article}
\usepackage{endnotes}
% Define two new counters for ease of using.
\newcounter{questionnumber}
\newcounter{choicenumber}[questionnumber]
% Formatting the counters, this is where you change how the counters appear.
\renewcommand*\thequestionnumber{\arabic{questionnumber}.}
\renewcommand*\thechoicenumber{\alph{choicenumber})}
% Define the \question and \choice commands to be similar to what is
% given in the OP
\newcommand*\question{\item}
\newcommand*\choice{\item}
% Here's a bit of a hack: \endnotetext stores the \meaning of the its argument
% in the endnotetext file, so the macros aren't expanded. I use \edef to fully
% expand the current \thechoicenumber, and use \expandafter to stuff it into
% the argument for \endnotetext. Suggestions for improvements are welcome!
\newcommand*\entreplace[1]{\endnotetext[\value{questionnumber}]{#1}}
\makeatletter
\newcommand\truechoice[1]{\item \protected@edef\currentcount{\thechoicenumber~~#1} \expandafter\entreplace\expandafter{\currentcount}}
\makeatother
% Define a choices environment, just a list basically.
\newenvironment{choices}{\begin{list}{\thechoicenumber}{\usecounter{choicenumber}}}{\end{list}}
% These are to set up the endnotes. The first makes the endnote marks look
% like the question numbering (as opposed to being in superscript). The second
% sets the endnotes heading to read "Answers".
\renewcommand*\makeenmark{\theenmark.~~}
\renewcommand*\notesname{Answers:}
\begin{document}
\begin{list}{\thequestionnumber}{\usecounter{questionnumber}}
\question Some question
\begin{choices}
\choice False choice
\choice Bad choice
\truechoice{This is true for no good reason} True choice.
\end{choices}
\question Who won the 2012 Presidential Election in US?
\begin{choices}
\choice Mitt Romney
\truechoice{Without even counting Florida} Barack Obama
\end{choices}
\end{list}
% Print the "answers"
\theendnotes
\end{document}
And here's the output:

Edit:
In response to zar's comment below, if we want the input syntax to be
\truechoice{Choice text}{Justification/commentary}
instead of
\truechoice{Justification/commentary} Choice text
one can change the definition to
\newcommand\truechoice[2]{\item #1 \protected@edef\currentcount{\thechoicenumber~~#2} \expandafter\entreplace\expandafter{\currentcount}}
But this way you have to put the choice text in braces, for example, you must write
\truechoice{True Choice!}{That choice was true for no good reason}
Edit 2: S.G. and zar noticed some problems with my abuse of the \edef
function. A more complicated, but functionally better hack is the following (I'm including the full file below for easy of copy-pasting)
\documentclass{article}
\usepackage{endnotes}
% Define two new counters for ease of using.
\newcounter{questionnumber}
\newcounter{choicenumber}[questionnumber]
% Formatting the counters, this is where you change how the counters
% appear.
\renewcommand*\thequestionnumber{\arabic{questionnumber}.}
\renewcommand*\thechoicenumber{\alph{choicenumber})}
% Define the \question and \choice commands to be similar to what is
% given in the OP
\newcommand*\question{\item}
\newcommand*\choice{\item}
% Here's a bit of a hack: \endnotetext stores the \meaning of the its argument
% in the endnotetext file, so the macros aren't expanded. I use \edef to fully
% expand the current \thechoicenumber, and use \expandafter to stuff it into
% the argument for \endnotetext. Suggestions for improvements are welcome!
\newcommand*\entreplace[1]{\endnotetext[\value{questionnumber}]{#1}}
\newcommand\truechoice[2]{\item #1 \edef\tempchoice{\thechoicenumber} \expandafter\def\expandafter\currentcount\expandafter{\tempchoice \ \ #2} \expandafter\entreplace\expandafter{\currentcount}}
% Define a choices environment, just a list basically.
\newenvironment{choices}{\begin{list}{\thechoicenumber}{\usecounter{choicenumber}}}{\end{list}}
% These are to set up the endnotes. The first makes the endnote marks look
% like the question numbering (as opposed to being in superscript). The second
% sets the endnotes heading to read "Answers".
\renewcommand*\makeenmark{\theenmark.~~}
\renewcommand*\notesname{Answers:}
\begin{document}
\begin{list}{\thequestionnumber}{\usecounter{questionnumber}}
\question Some question
\begin{choices}
\choice False choice
\choice Bad choice
\truechoice{True choice}{This is true for no good reason $1+1$. Let me
add more text. There should be four or five lines. Can I put displayed
math in here? \emph{test} \[ E = mc^2\] Some more text.}
\end{choices}
\end{list}
% Print the "answers"
\theendnotes
\end{document}
and this is what it outputs

which as one can see correctly handles the \emph
command and math (both displayed and inline) environments.
I started with the first answer to Showing Solutions of the Questions "separately" and modified it to something that is nearly exactly what I wanted. It turns out that \item and \setbox don't play well with each other (read to the bottom of Missing Item number in enumerate for the details).
MWE:
\documentclass[answers]{exam}
%%%%The following sets up a box to save all the answer information into.
\newbox\allanswers
\setbox\allanswers=\vbox{}
\newenvironment{answer}
{%
\global\setbox\allanswers=\vbox\bgroup %
\unvbox\allanswers%
\thequestion \thechoice\\
}%
{%
\egroup%
}
\newcommand{\CC}{\CorrectChoice \leavevmode\begin{answer}\end{answer}}% New command \CC replaces \CorrectChoice from exam.sty and saves answers in the box \allanswers .
\newcommand{\showallanswers}{%
\ifprintanswers \centering Here are the answers: \par \usebox\allanswers \fi}
\begin{document}
\begin{questions}
\question[5] Important Question 1
\begin{choices}
\choice 99
\CC 100
\choice 50
\choice 1
\choice none of these
\end{choices}
% \vfill
\question[5] Important Question 2.
\begin{choices}
\CC 6
\choice 12
\choice 24
\choice 36
\choice none of these
\end{choices} \answerline %\vfill
\end{questions}
\showallanswers
% The answers have the same text format as the answers within the question, so are naturally \textbf when
\end{document}
The only thing that would make this better is to have the list of problem numbers and answers inside a tabular environment, but I am going to leave that for another day.
Best Answer
From this question: we create a multicolumn environment:
and use it in the
choices
environment. MWE:BTW: why not use the
exam
class?