Assuming the DH rules are sorted out, here's a way you could do floating realignment:
Pool teams into East, Central, and West. Should be 10 teams in each. Every five years, realign based on total record over those five years. Teams #1, 4, 5, 8, and 10 from one region could go to the AL, and Teams #2, 3, 6, 7, and 9 could go to the NL. Then in the next cycle, the #s could be switched. You could also add a Yankees-Red Sox exception that would allow them to always be in the same division if they want to.