Why is my DFT/FFT always 90° out of phase?
The Fourier Transform (and the DFT is the discrete form of this with a finite length sequence) is simply a correlation of the input signal with each frequency bin, of the continuous form:

$$X(\omega) = \int_{t=0}^Tx(t)e^{-j\omega t}dt$$

(If we consider a finite time duration, however I will stay with the continuous time version of the Fourier Transform as it will simplify the explanation).

Here we see that for any freqency $\omega$ we are doing a correlation of $x(t)$ with $e^{j\omega t}$  (correlation is a complex conjugate multiplication followed by integration, or summation when discrete). 

As a correlation we see that the result will be maximum when x(t) is fully correlated to $e^{j\omega t}$ over the given time interval, and similarly 0 when it is fully uncorrelated (orthogonal).

Now make note of Euler's identity given as:

$$e^{-j \omega t} = cos(\omega t) - j sin(\omega t)$$

And replacing that in our first formula we can expand the Fourier Transform given into two correlations:

$$X(\omega) = \int_{t=0}^T x(t)cos(\omega t)dt - j\int_{t=0}^T x(t)sin(\omega t)dt$$

From this we see that when $x(t) =sin(\omega t)$, (and duration T covers one full cycle or an integer number of cycles), the second term will be fully correlated, while the first term will be zero, and vice versa when $x(t) =cos(\omega t)$.  Any correlation to the second term results in an imaginary result IF x(t) is real.  Any phase shift on x(t), as in $x(t) = sin(\omega t + \phi)$ where $\phi$ is anything except $\pm N\pi/2$ for N any integer, will result in a complex result with $X(\omega)$ having real and imaginary components. 

Note the discrete form of this, the DFT, is as given below where the same result can be explained, but may not be as easy to see for some that are less familiar with it.

$$X[k] = \Sigma_{n=0}^{N-1}x[n]e^{-jn\omega_o \frac{k}{N}}$$