So, it turns out that this has already been answered.
By using quoted string expansion, one can avoid the problem:
PS1='\n[\@] \w $(__git_ps1 "(%s)")'$'\n\$ '
It's amazing to me that in 2016 Bash still uses this terrible, terrible syntax. There has to be a better way.