I would say try a later bedtime, even if it's just 20-30 minutes. Kids need less sleep as they grow, and he may be at a point where he really truly is not tired yet at his usual bedtime.
My son (17 months) went through this recently where he would just sit and fuss for 30-45 minutes when we put him to bed. I figured if he's going to sit there and fuss, he might as well be up with us and happy. We pushed back his bedtime by 30 minutes, and problem solved.
If you can't change his bedtime, then I would look at maybe shortening his afternoon nap (if he takes one) or taking the nap earlier.
As far as the tub goes, you could try setting an egg timer when he gets in and tell him that when the timer goes off, it's time to get out. Sometimes timers work because they take the pressure off the parents. The kids perceive that it's the timer that is telling them time's up. :-) Good luck.