If you have $20+M tied up in 2+ players you don't really want, and can't trade, it's about as bad as carrying Yelich. If you extended Hiura after his rookie year, you'd make it longer than 6 years, because you have that long without signing a long-term contract..
IMO, you should ONLY do it when the player is willing to sacrifice significant potential long-term $ for security. If they want what you expect their going rate to be each year, you should pass.