As Brittney White is suggesting, you should use the ToolValidator (Validation tab in tool's properties). See Programming a ToolValidator class and related documentation for additional information. For my test I pasted Brittney's code in the updateParameters section with no changes.
For the tools Parameters, I defined them as a feature class and a string.
I used the following script for my tests. The expression used in the field calculator is interesting to code (line 22 below) as you need to escape curly braces and watch your quote marks so that when the expression is passed, it has the proper values. the first .format will work with the escaped curly braces in field calculator, and the second .format will insert the field name used for the calculation. Perhaps Dan Patterson can suggest alternative ways of formatting the expression.
import arcpy
from arcpy import env
import os, sys, traceback
feature = arcpy.GetParameterAsText(0)
field = arcpy.GetParameterAsText(1)
arcpy.AddMessage("Feature: {}".format(feature))
arcpy.AddMessage("Field: {}".format(field))
env.workspace = feature
newField = 'HT_FT_txt'
arcpy.AddField_management(feature, newField, 'TEXT', '', '', '50', 'Buffer_field', 'NULLABLE')
arcpy.CalculateField_management(feature, newField,
expression="'{{}} Feet'.format(!{}!)".format(field),
expression_type="PYTHON_9.3", code_block="")
My version of the tool looks like the following. The red x indicates that the feature class needs to be entered.
I have not checked your code for the buffer calculation.