Pulseaudio is started automatically by either your desktop environment or programs which make use of it. It's running under your user.
To solve your problem, I would look at adding `pactl` or `pacmd` line to any startup scripts you might have available. Note I don't actually think you are experiencing pulseaudio "forgetting" your settings - I'm pretty sure the default behavior just prefers external devices to internal ones (so, you're fighting pulseaudio in this case).

