To Make a Spinning Top Last Two Hours, Put a Motor, Controller and Battery Inside It
A spinning top eventually slows down, so this project answers by putting a brushless motor, ESC, microcontroller, rechargeable battery and eccentric weight inside the top and keeping it going for roughly two hours. It works without an external base or magnets.
When the spin weakens, the internal mass shifts the center of gravity and adds energy back into the motion. Electronics and mechanical control are deployed directly against the very normal fact that tops stop spinning.

You open a spinning top and discover something close to a tiny robot inside. That's a lot of commitment to not stopping.