I would argue that it is only messy because we are looking at the wrong level of abstraction with an incorrect computational model. At the end of the day, if it has inputs and produces outputs, it is a computing device (i.e. a computer).
Seems like an overly broad definition. A pizza oven has inputs and outputs but you would probably struggle to find someone willing to call it a computer.
Does it? A button is not equivalent to an input anymore than pulling down a level that initiates a process that culminates in the lighting of a candle.