Here's what I've found to work for recording PulseAudio output.
You can record multiple processes and hear what's being recorded at the same time.
You'll need Pulse Audio volume control (pavucontrol) and some software such as Audacity to record the audio.
Go to the Input Devices tab on pavucontrol and mute all the input devices, unless you want to record from your microphone at the same time.
Run audacity or another recording program. In Audacity you can monitor the output without recording, which is handy since you need to do this for PulseAudio to recognize it. I found capturing ALSA and default to work just fine.
Go to the Recording tab on pavucontrol and set your recording software to "ALSA Capture from Monitor of Built-in Audio Analog Software". If nothing shows up in the "Recording" tab, then make sure your capture application is actually recording.
Go to the Playback tab and adjust the levels for each process to your liking. You can also adjust the levels from your speakers or headphones in the "Output Devices" tab.
Record, edit, export, etc.
Don't forget to unmute your Input Devices if you did that earlier.
I get just about same output from arecord -l. I've used audacity to record a song from a website (yes, I tried to buy the song from the site, but...). Need to get the right adjustment of muting the microphone (if possible) and then cleaning up any static/background noise. So for you, I would start audacity, start your program, set to record to a new project and then perform the functionality the you want to record.