A "-8s" legalább 8 byte-ot (python2) / karaktert (python3) ír ki, szóközökkel kiegészítve a sztringet ha kell. A terminálra színezés eredménye egy olyan sztring, amely színező escape szekvenciákat tartalmaz, jelen esetben konkrétan "\e[33mWARNING\e[0m", bőven több mint 8 karakter, tehát már nem rak utána szóközt.
Hogy hogyan lehetne értelmesen megcsinálni? Mérd le a sztring hosszát még a színezés előtt. Sőt, inkább ne is a hosszát, hanem a terminálban szélességét (wcswidth), ami nem mindig ugyanaz. És kézzel egészítsd ki a megfelelő számú szóközzel. Vagy a színező escape szekvenciákat cipeld külön a levelname sztringtől.