Arjan I am stuck at the same issue, from looking at your code you are converting to base64 twice and also signing twice which doesn't seem right to me. Did you get it working by now?
@Bastiaan could you provide an example on how to create the signature.
We are using nodejs and doing something along the lines of:
const signer = crypto.createSign('SHA256');
signer.update(keyPair.publicKey);
const signature = signer.sign(secrets.PRIVATE_KEY, 'base64');
const clientPublicKeySignature = `${signature}${installationToken}`;