pactl load-module module-alsa-sink control=PCM should result in pulseaudio seeing a new output device that will control the PCM volume. If changing this device allows for proper control of audio output volume, you can add a line
load-module module-alsa-sink control=PCM to
PCM (pulse code modulation) occurs at ALSA kernel level, and is responsible for sampling and conversion of digital signals from software to analog ones heard out of your hardware (PCM Playback channel), as well as analog ones coming in from your microphone (PCM Capture) to their digital form.
Linux audio output and volume control allows for a lot of versatility, but it can make thinks more complicated and more difficult to troubleshoot as well. For output, the flow is more or less like this:
START:Application audio you wish to hear produces digital audio data
> Pulse app and libraries (user control with pavucontrol happens here and changes are then sent to the pulse engine server)
> Pulse engine server (the core of Pulseaudio package)
> ALSA Kernel API (alsamixer control, PCM, MIDI and Sequencer API)
> ALSA kernel driver processes data to make it understandable to our hardware
END: Speaker output
pactl from pulseaudio package should get you started and on the right track, please try
$pactl set-sink-volume $(pactl info | grep -i Sink | cut -d ':' -f2) 25%
and let us know if the audio volume gets set to 1/4 of the range, or again jumps to 100%.