Solution 1:

I have the same microphoone problem with slack calls and also I have 16.04 LTS and QC35. BT music streaming (A2PD) is working perfectly and also when someone calls during streaming, I am able to use headphone microphone too (at least this was OK earlier before re-install of ubuntu due to another issue).

When during a call I selected QC35 in pavucontrol, then slack did not complain any more about missing audio input. BUT even if I did hear audio very well, my voice was not send.
Even if I select HSP/HFP (=BT call audio profile) at configuration tab of pavucontrol, I see only "monitor" of my QC35 as input device (as well default built-in audios). Also testing sound (front left, front right) seems to use only A2DP because did not hear any sound degradation when tried to change profile to narrow band HFP.

~/.config/pulse$
cat xxx-default-sink
bluez_sink.BT_ADDRESS
cat xxx-default-source
alsa_input.pci-0000_00_1f.3.analog-stereo
(Thus the source did not change even if tried)

Also btmon shows only ACL packets (instead of expected SCO), thus assuming that only A2DP connection is running.

update: Re-starting pulseaudio solved the problem, i.e., now able to use also mic and see those in pavucontrol those as expected. And passed tests: https://add_here.slack.com/help/test/calls

Unfortunately HFP seems to cause some noise but that is another problem, already discussed at bluetooth-headset-producing-a-hissing-noise