This was fixed on SAMD (I thought) in shared code. It relies on a flush that may make it fail on nRF. https://github.com/adafruit/circuitpython/commit/561fdfb279c45f7a9ff69a2b2e71ac272cb6aaef#diff-880d63a1c107dd299a7ed80251505a9eR235