It ends up that part of the problem here is that partprobe is open/closing the device 3 times while probing it. It should only open/close the RW fd once, like parted does, to minimize the udev BLKRRPART command that happens in response to the close.
Here's the proposed patch:
https://github.com/bcl/parted/commit/570802f5ac81a977735dbd9fc4c109387bdbc2c5
Which results in:
# strace -e open -o /dev/stdout partprobe /dev/sda | grep '"/dev/sda"'
open("/dev/sda", O_RDONLY) = 3
open("/dev/sda", O_RDWR) = 3
A single open/close.
This should stop udev from trying to issue a BLKRRPART in the middle of partprobe running. It doesn't remove the need for a short delay and udev settle before/after running partprobe.
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.
For information on the advisory, and where to find the updated
files, follow the link below.
If the solution does not work for you, open a new bug report.
https://rhn.redhat.com/errata/RHBA-2016-2183.html